{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "1f414496-9550-494b-9938-0add9cdedbb1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:44.854715Z",
     "iopub.status.busy": "2024-08-12T03:07:44.854009Z",
     "iopub.status.idle": "2024-08-12T03:07:44.868995Z",
     "shell.execute_reply": "2024-08-12T03:07:44.866743Z",
     "shell.execute_reply.started": "2024-08-12T03:07:44.854644Z"
    },
    "scrolled": true
   },
   "outputs": [],
   "source": "!pip install langchain langchain_community pypdf openai"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6ae2490e-a1e9-443b-9554-e7be49c61011",
   "metadata": {},
   "outputs": [],
   "source": [
    "%env API_KEY=替换为自己的\n",
    "%env BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "b6a1316f-07b1-490c-a673-05c73c3a6124",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:44.889439Z",
     "iopub.status.busy": "2024-08-12T03:07:44.889201Z",
     "iopub.status.idle": "2024-08-12T03:07:45.209226Z",
     "shell.execute_reply": "2024-08-12T03:07:45.208785Z",
     "shell.execute_reply.started": "2024-08-12T03:07:44.889417Z"
    }
   },
   "outputs": [],
   "source": [
    "from langchain_community.document_loaders import PyPDFLoader\n",
    "from langchain.schema import Document\n",
    "\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "018cdaf6-f8af-4879-9153-b0686782fb34",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:45.210000Z",
     "iopub.status.busy": "2024-08-12T03:07:45.209731Z",
     "iopub.status.idle": "2024-08-12T03:07:45.212681Z",
     "shell.execute_reply": "2024-08-12T03:07:45.212198Z",
     "shell.execute_reply.started": "2024-08-12T03:07:45.209986Z"
    }
   },
   "outputs": [],
   "source": [
    "dt = '20240811'\n",
    "version = 'v1_1'\n",
    "\n",
    "output_dir = os.path.join('outputs', f'{version}_{dt}')\n",
    "os.makedirs(output_dir, exist_ok=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2c81807d-e4f5-4618-8e7b-688dd72b8f0c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:45.213902Z",
     "iopub.status.busy": "2024-08-12T03:07:45.213744Z",
     "iopub.status.idle": "2024-08-12T03:07:46.442473Z",
     "shell.execute_reply": "2024-08-12T03:07:46.442002Z",
     "shell.execute_reply.started": "2024-08-12T03:07:45.213891Z"
    }
   },
   "outputs": [],
   "source": [
    "loader = PyPDFLoader(\"data/2024全球经济金融展望报告.pdf\")\n",
    "documents = loader.load()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "0e5f0196-a4c5-44ab-9af1-a74a6a62d5fd",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.443183Z",
     "iopub.status.busy": "2024-08-12T03:07:46.443055Z",
     "iopub.status.idle": "2024-08-12T03:07:46.447583Z",
     "shell.execute_reply": "2024-08-12T03:07:46.447095Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.443171Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "53"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(documents)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "4a8a771a-e9ea-46df-a911-8a1f32c9198c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.448599Z",
     "iopub.status.busy": "2024-08-12T03:07:46.448142Z",
     "iopub.status.idle": "2024-08-12T03:07:46.460973Z",
     "shell.execute_reply": "2024-08-12T03:07:46.460630Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.448586Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "643"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(documents[0].page_content)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "c2bc3e04-9737-4e6b-b292-3b582b5e0c99",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.461559Z",
     "iopub.status.busy": "2024-08-12T03:07:46.461427Z",
     "iopub.status.idle": "2024-08-12T03:07:46.466228Z",
     "shell.execute_reply": "2024-08-12T03:07:46.465888Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.461546Z"
    }
   },
   "outputs": [],
   "source": [
    "import re\n",
    "\n",
    "pattern = r\"^全球经济金融展望报告\\n中国银行研究院 \\d+ 2024年\"\n",
    "# re.sub(pattern, '', splitted_docs_large[3].page_content)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "4eae10fa-0430-474b-b6ba-deac98838fba",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.466800Z",
     "iopub.status.busy": "2024-08-12T03:07:46.466639Z",
     "iopub.status.idle": "2024-08-12T03:07:46.472493Z",
     "shell.execute_reply": "2024-08-12T03:07:46.472148Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.466787Z"
    }
   },
   "outputs": [],
   "source": [
    "merged_docs = [Document(page_content='\\n'.join(re.sub(pattern, '', doc.page_content) for doc in documents))]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "2a08d8be-029b-4dd8-a741-985e38529a66",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.473072Z",
     "iopub.status.busy": "2024-08-12T03:07:46.472942Z",
     "iopub.status.idle": "2024-08-12T03:07:46.481007Z",
     "shell.execute_reply": "2024-08-12T03:07:46.480655Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.473060Z"
    }
   },
   "outputs": [],
   "source": [
    "from uuid import uuid4\n",
    "import os\n",
    "import pickle\n",
    "\n",
    "from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
    "\n",
    "def split_docs(documents, filepath, chunk_size=400, chunk_overlap=40, seperators=['\\n\\n\\n', '\\n\\n'], force_split=False):\n",
    "    if os.path.exists(filepath) and not force_split:\n",
    "        print('found cache, restoring...')\n",
    "        return pickle.load(open(filepath, 'rb'))\n",
    "\n",
    "    splitter = RecursiveCharacterTextSplitter(\n",
    "        chunk_size=chunk_size,\n",
    "        chunk_overlap=chunk_overlap,\n",
    "        separators=seperators\n",
    "    )\n",
    "    split_docs = splitter.split_documents(documents)\n",
    "    for chunk in split_docs:\n",
    "        chunk.metadata['uuid'] = str(uuid4())\n",
    "\n",
    "    pickle.dump(split_docs, open(filepath, 'wb'))\n",
    "\n",
    "    return split_docs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "9113d9a5-7d7c-4e3a-876c-f8a69cd7d8a2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.481603Z",
     "iopub.status.busy": "2024-08-12T03:07:46.481471Z",
     "iopub.status.idle": "2024-08-12T03:07:46.679000Z",
     "shell.execute_reply": "2024-08-12T03:07:46.678493Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.481590Z"
    }
   },
   "outputs": [],
   "source": [
    "splitted_docs = split_docs(documents, os.path.join(output_dir, 'split_docs.pkl'), chunk_size=500, chunk_overlap=50)\n",
    "splitted_docs_large = split_docs(merged_docs, os.path.join(output_dir, 'split_docs_large.pkl'), chunk_size=1500, chunk_overlap=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "b4989f2c-4474-4612-a470-ade89cb3a9b4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.679897Z",
     "iopub.status.busy": "2024-08-12T03:07:46.679563Z",
     "iopub.status.idle": "2024-08-12T03:07:46.683105Z",
     "shell.execute_reply": "2024-08-12T03:07:46.682703Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.679885Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(52, 28)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(splitted_docs), len(splitted_docs_large)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "13fe597d-120e-47a1-8ec1-a167fea1d328",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.683698Z",
     "iopub.status.busy": "2024-08-12T03:07:46.683541Z",
     "iopub.status.idle": "2024-08-12T03:07:46.696750Z",
     "shell.execute_reply": "2024-08-12T03:07:46.696321Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.683686Z"
    }
   },
   "outputs": [],
   "source": [
    "uuid2doc = {doc.metadata['uuid']: doc.page_content for doc in splitted_docs}\n",
    "uuid2large_doc = {doc.metadata['uuid']: doc.page_content for doc in splitted_docs_large}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0b9be7ac-547e-4347-acc8-193b09e6277e",
   "metadata": {},
   "source": [
    "# 抽取QA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "976d80d0-d5b2-486f-83ca-f2a194b07b6b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.699127Z",
     "iopub.status.busy": "2024-08-12T03:07:46.698991Z",
     "iopub.status.idle": "2024-08-12T03:07:46.702682Z",
     "shell.execute_reply": "2024-08-12T03:07:46.702335Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.699115Z"
    }
   },
   "outputs": [],
   "source": [
    "qa_gen_prompt_tmpl = \"\"\"\n",
    "我会给你一段文本（<document></document>之间的部分），你需要阅读这段文本，分别针对这段文本生成8个问题、用户回答这个问题的上下文，和基于上下文对问题的回答。\n",
    "\n",
    "对问题、上下文、答案的要求：\n",
    "\n",
    "问题要与这段文本相关，不要询问类似“这个问题的答案在哪一章”这样的问题\n",
    "上下文：上下文必须与原始文本的内容保持一致，不要进行缩写、扩写、改写、摘要、替换词语等\n",
    "答案：回答请保持完整且简洁，无须重复问题。答案要能够独立回答问题，而不是引用现有的章节、页码等\n",
    "\n",
    "返回结果以JSON形式组织，格式为[{\"question\": \"...\", \"context\": ..., \"answer\": \"...\"}, ...]。\n",
    "如果当前文本主要是目录，或者是一些人名、地址、电子邮箱等没有办法生成有意义的问题时，可以返回[]。\n",
    "\n",
    "下方是文本：\n",
    "<document>\n",
    "{{document}}\n",
    "</document>\n",
    "\n",
    "请生成结果：\n",
    "\"\"\"\n",
    "\n",
    "qa_gen_prompt_tmpl_large_context = \"\"\"\n",
    "我会给你一段文本（<document></document>之间的部分），你需要阅读这段文本，分别针对这段文本生成2个问题，和基于这段文本对问题的回答，回答请保持完整，无须重复问题。\n",
    "尽可能创建一些需要综合*大段*文本才能回答的问题，但不要问类似“这一段主要讲了什么内容”这样的问题，答案要能够独立回答问题，而不是引用现有的章节、页码等；不要问具体过于细节的问题，例如“海湾国家的2024年预期经济增长率是多少”，而是尽可能问类似“2024年全球经济的几大趋势是什么”、“受局部中东地区紧张局势影响，可能对全球原物料有哪些影响”。\n",
    "返回结果以JSON形式组织，格式为[{\"question\": \"...\", \"answer\": \"...\"}, ...]。\n",
    "如果当前文本主要是目录，或者是一些人名、地址、电子邮箱等没有办法生成有意义的问题时，可以返回[]。\n",
    "\n",
    "下方是文本：\n",
    "<document>\n",
    "{{document}}\n",
    "</document>\n",
    "\n",
    "请生成结果：\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "6b8d344f-55e2-4365-a064-788dd330509f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.703395Z",
     "iopub.status.busy": "2024-08-12T03:07:46.703201Z",
     "iopub.status.idle": "2024-08-12T03:07:46.708920Z",
     "shell.execute_reply": "2024-08-12T03:07:46.708509Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.703365Z"
    }
   },
   "outputs": [],
   "source": [
    "# prompt_tmpl2 = \"\"\"\n",
    "# 请帮我基于这份文档，构造10条数据，包括问题和答案和关键词，尽量生成一些需要全局信息的问题，回答尽量详细一些。\n",
    "# 请注意，答案必须来自于此文档，结果请以JSON数组形式组织，格式为[{\"question\": \"...\", \"answer\": \"...\", \"keywords\": [\"...\"]}]\n",
    "# \"\"\"\n",
    "\n",
    "# prompt_tmpl3 = \"\"\"\n",
    "# 请帮我基于这份文档，构造20条数据，包括问题和答案和关键词，尽量生成一些询问流程、有哪些步骤、有哪些组成部分的问题，回答尽量详细一些。\n",
    "# 请注意，答案必须来自于此文档，结果请以JSON数组形式组织，格式为[{\"question\": \"...\", \"answer\": \"...\", \"keywords\": [\"...\"]}]\n",
    "# \"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "2938667e-aa5e-43d0-80ba-8b80b66c43ee",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:46.709621Z",
     "iopub.status.busy": "2024-08-12T03:07:46.709443Z",
     "iopub.status.idle": "2024-08-12T03:07:47.000657Z",
     "shell.execute_reply": "2024-08-12T03:07:47.000062Z",
     "shell.execute_reply.started": "2024-08-12T03:07:46.709609Z"
    }
   },
   "outputs": [],
   "source": [
    "from openai import OpenAI\n",
    "import time\n",
    "import random\n",
    "\n",
    "client = OpenAI(\n",
    "    api_key=os.environ['API_KEY'],\n",
    "    base_url=os.environ['BASE_URL']\n",
    ")\n",
    "\n",
    "def build_qa_prompt(prompt_tmpl, text):\n",
    "    prompt = prompt_tmpl.replace('{{document}}', text).strip()\n",
    "    return prompt\n",
    "\n",
    "def chat(prompt, max_retry=3, debug=False, model_name='qwen-long', temperature=0.85, top_p=0.95):\n",
    "    def do_chat(prompt):\n",
    "        completion = client.chat.completions.create(\n",
    "            # model=\"Qwen/Qwen2-72B-Instruct\",\n",
    "            model=model_name,\n",
    "            messages=[    \n",
    "                {\"role\": \"system\", \"content\": \"你是一个有用的人工智能助手\"},    \n",
    "                {\"role\": \"user\", \"content\": prompt}\n",
    "            ],\n",
    "            top_p=top_p,\n",
    "            temperature=temperature\n",
    "        )\n",
    "        return completion.choices[0].message.content\n",
    "\n",
    "    while max_retry > 0:\n",
    "        try:\n",
    "            return do_chat(prompt)\n",
    "        except Exception as e:\n",
    "            max_retry -= 1\n",
    "            sleep_seconds = random.randint(1, 4)\n",
    "            if debug:\n",
    "                print(f\"{str(e)}, remain retry: {max_retry}, sleeping {sleep_seconds}s {prompt}\")\n",
    "            time.sleep(sleep_seconds)\n",
    "    return None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "aabdd8b4-1cea-4d2f-89b3-0f859a65dd72",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:47.001424Z",
     "iopub.status.busy": "2024-08-12T03:07:47.001230Z",
     "iopub.status.idle": "2024-08-12T03:07:47.003725Z",
     "shell.execute_reply": "2024-08-12T03:07:47.003217Z",
     "shell.execute_reply.started": "2024-08-12T03:07:47.001411Z"
    }
   },
   "outputs": [],
   "source": [
    "text = splitted_docs[40].page_content"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "a7bf3d69-4de4-4666-9297-fe5417b591f1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:47.004439Z",
     "iopub.status.busy": "2024-08-12T03:07:47.004256Z",
     "iopub.status.idle": "2024-08-12T03:07:47.017374Z",
     "shell.execute_reply": "2024-08-12T03:07:47.016763Z",
     "shell.execute_reply.started": "2024-08-12T03:07:47.004419Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "全球经济金融展望报告\n",
      "中国银行研究院 40 2024年\n",
      "注重绿色经济发展，为中海经贸合作创造了良好机遇。\n",
      "（一）近年来海湾六国经济表现受能源价格影响较大\n",
      "受国际能源价格走势影响，近年来海湾六国经济增长波动较大。2022年，\n",
      "在全球油气价格飙升推动下，海湾六国经济增长强劲，实际GDP增速达7.3%。\n",
      "其中，沙特占据海湾六国经济体量的半壁江山。2022年，沙特GDP规模达1.1\n",
      "万亿美元，阿联酋和卡塔尔GDP规模分别为5075亿和2373亿美元，位列第二\n",
      "和第三位（图26）。油气部门在海湾六国经济总量中的占比超过40%，在沙特\n",
      "的占比更是接近七成。\n",
      "图26：2022年海湾六国经济体量（亿美元）\n",
      "资料来源：世界银行，中国银行研究院\n",
      "2023年以来，海湾六国经济增长明显放缓。主要经济体货币政策加速收紧、\n",
      "全球经济活动减少使全球能源需求下降，海湾六国经济增长面临严重挑战。IMF\n",
      "在最新展望报告中将海湾六国2023年经济增速下调0.8个百分点至1.7%。其中，\n",
      "沙特经济增速预计仅为0.8%，低于中东石油出口国的平均水平。相比之下，阿\n",
      "联酋韧性较强，预计2023年和2024年经济增速分别为3.4%和4.0%，为海湾\n",
      "六国中最高（图27）。鉴于海湾六国经济结构相对单一，非石油部门虽然为海\n"
     ]
    }
   ],
   "source": [
    "print(text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "494dd058-017d-41fd-90e4-b531db619d8f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:07:47.018230Z",
     "iopub.status.busy": "2024-08-12T03:07:47.017839Z",
     "iopub.status.idle": "2024-08-12T03:08:18.039008Z",
     "shell.execute_reply": "2024-08-12T03:08:18.036742Z",
     "shell.execute_reply.started": "2024-08-12T03:07:47.018203Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "```json\n",
      "[\n",
      "  {\n",
      "    \"question\": \"近年来海湾六国的经济表现受到什么因素的影响较大？\",\n",
      "    \"context\": \"受国际能源价格走势影响，近年来海湾六国经济增长波动较大。\",\n",
      "    \"answer\": \"近年来海湾六国的经济表现受国际能源价格的影响较大。\"\n",
      "  },\n",
      "  {\n",
      "    \"question\": \"2022年海湾六国的实际GDP增速是多少？\",\n",
      "    \"context\": \"2022年，在全球油气价格飙升推动下，海湾六国经济增长强劲，实际GDP增速达7.3%。\",\n",
      "    \"answer\": \"2022年海湾六国的实际GDP增速达到7.3%。\"\n",
      "  },\n",
      "  {\n",
      "    \"question\": \"2022年沙特的GDP规模是多少？\",\n",
      "    \"context\": \"2022年，沙特GDP规模达1.1万亿美元。\",\n",
      "    \"answer\": \"2022年沙特的GDP规模为1.1万亿美元。\"\n",
      "  },\n",
      "  {\n",
      "    \"question\": \"2022年阿联酋和卡塔尔的GDP规模分别是多少？\",\n",
      "    \"context\": \"阿联酋和卡塔尔GDP规模分别为5075亿和2373亿美元。\",\n",
      "    \"answer\": \"2022年阿联酋的GDP规模为5075亿美元，卡塔尔为2373亿美元。\"\n",
      "  },\n",
      "  {\n",
      "    \"question\": \"2023年以来海湾六国经济增长发生了什么变化？\",\n",
      "    \"context\": \"2023年以来，海湾六国经济增长明显放缓。\",\n",
      "    \"answer\": \"2023年以来海湾六国的经济增长明显放缓。\"\n",
      "  },\n",
      "  {\n",
      "    \"question\": \"IMF将2023年海湾六国经济增速下调至多少？\",\n",
      "    \"context\": \"IMF在最新展望报告中将海湾六国2023年经济增速下调0.8个百分点至1.7%。\",\n",
      "    \"answer\": \"IMF将2023年海湾六国经济增速下调至1.7%。\"\n",
      "  },\n",
      "  {\n",
      "    \"question\": \"2023年沙特的经济增速预计会是多少？\",\n",
      "    \"context\": \"沙特经济增速预计仅为0.8%，低于中东石油出口国的平均水平。\",\n",
      "    \"answer\": \"2023年沙特的经济增速预计仅为0.8%。\"\n",
      "  },\n",
      "  {\n",
      "    \"question\": \"2023年和2024年阿联酋的经济增速预计会是多少？\",\n",
      "    \"context\": \"相比之下，阿联酋韧性较强，预计2023年和2024年经济增速分别为3.4%和4.0%。\",\n",
      "    \"answer\": \"2023年和2024年阿联酋的经济增速预计分别为3.4%和4.0%。\"\n",
      "  }\n",
      "]\n",
      "```\n"
     ]
    }
   ],
   "source": [
    "print(chat(build_qa_prompt(qa_gen_prompt_tmpl, text), debug=True))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "a8465bb6-5f69-4cd1-b957-2ee01ec8cd4e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:08:18.042080Z",
     "iopub.status.busy": "2024-08-12T03:08:18.041371Z",
     "iopub.status.idle": "2024-08-12T03:08:18.053420Z",
     "shell.execute_reply": "2024-08-12T03:08:18.051878Z",
     "shell.execute_reply.started": "2024-08-12T03:08:18.042013Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "存在专向性1或属于禁止性补贴，且对欧盟内部产业构成实质性损害的情况下，欧盟即可认定补贴属于\n",
      "可诉性补贴。在此情况下，欧盟一般可能采取两类反补贴措施：一是加征反补贴税，针对不同类型的\n",
      "企业，适用的加征税率也有所差异，其中被认定为不合作企业将会被征收最高税率；二是出口商接受\n",
      "价格承诺，以不低于特定价格出口。反补贴措施一般实施五年。当欧盟认定补贴未对其产业带来损害、\n",
      "补贴微量或申请人撤诉的情况下，可以无措施结案。\n",
      "欧盟从2010年首次发起对华反补贴调查开始，共计对华发起过18起反补贴调查，涉及多个制造\n",
      "业领域，其中接近三分之二的调查最终采取了加征关税的措施。因此，从历史经验看，反补贴调查一\n",
      "经发起，欧盟较大概率最终将采取加征关税措施。\n",
      "3.日本经济总体保持稳定，货币政策有望迎来拐点\n",
      "2023年日本经济整体呈现先升后降走势。上半年，在疫后重新开放市场、\n",
      "供应链修复等因素影响下，日本经济实现较快增长，一、二季度GDP环比增长\n",
      "折年率分别达到3.7%和4.5%。但三季度日本经济增长形势急转直下，GDP环\n",
      "比折年率降至-2.1%，三个季度以来首次出现负增长。从全年情况看，通胀压力\n",
      "和疲软的日元抑制了私人需求，占日本GDP近六成的个人消费连续两个季度出\n",
      "现负增长，严重拖累日本经济。前期对日本经济增长贡献较大的外需在三季度\n",
      "也逐渐失去活力，特别是前期增长旺盛的访日外国游客消费在三季度出现5%\n",
      "的环比下滑，同期日本进口出现三个季度的首次正增长，净出口对整体经济的\n",
      "贡献由正转负。民间设备投资在二季度下降1%后三季度再下降0.6%，企业在\n",
      "价格压力不减的情况下继续削减投资。政府消费经历先降后升走势，日本政府\n",
      "财政政策在三季度开始发力，但仍不足以支撑日本经济整体表现。按照平均汇\n",
      "率折算，前三季度日本经济总量被德国赶超，降至全球第四位。\n",
      "1如果补贴授予当局补贴发放明确限定于特定企业，这种补贴即具有专向性。\n",
      "\n",
      "图11：日本GDP环比增长折年率变化情况（%）\n",
      "资料来源：Wind，中国银行研究院\n",
      "日本通胀压力较大。2022年以来，日本通胀持续上涨，并于2023年初达\n",
      "到41年来高位。此后受益于能源进口价格下滑以及政府对抑制电费和燃气费的\n",
      "补贴政策，通胀水平有所回落，但最新数据仍在3%左右的水平震荡，显著高于\n",
      "过去二十多年0.15%的平均水平。日本对海外能源、食品的依赖程度较为突出，\n",
      "特别是能源进口依赖度高达89%，输入性通胀对日本影响较大。上半年进口价\n",
      "格回落助力日本通胀形势有所缓解，进入三季度日本面临的进口价格压力再度\n",
      "上升。在服务分项和劳动力工资上涨支撑下，剔除食品和能源价格的核心通胀\n",
      "保持较强粘性。虽然日本劳动力工资水平整体有所上调，但工资“跑不赢”物\n",
      "价成为常态，个人消费增长受阻，国内市场活力受到抑制，导致内需对于日本\n",
      "经济整体贡献持续为负。\n"
     ]
    }
   ],
   "source": [
    "print(splitted_docs_large[8].page_content)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "228f79ac-c37a-441c-8c06-af02f7c8b119",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:08:18.055142Z",
     "iopub.status.busy": "2024-08-12T03:08:18.054750Z",
     "iopub.status.idle": "2024-08-12T03:08:31.809221Z",
     "shell.execute_reply": "2024-08-12T03:08:31.806967Z",
     "shell.execute_reply.started": "2024-08-12T03:08:18.055107Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[\n",
      "{\"question\": \"欧盟在什么条件下会认定补贴为可诉性补贴并采取反补贴措施?\", \"answer\": \"当补贴存在专向性或属于禁止性补贴,且对欧盟内部产业构成实质性损害的情况下,欧盟即可认定补贴属于可诉性补贴。在这种情况下,欧盟一般可能采取两类反补贴措施:一是加征反补贴税,针对不同类型的企业的加征税率也会有所不同,其中不合作企业将会被征收最高税率;二是出口商接受价格承诺,以不低于特定价格出口。\"},\n",
      "{\"question\": \"2023年日本经济的表现如何,尤其是其经济增长和个人消费方面的特点?\", \"answer\": \"2023年日本经济整体呈现先升后降的走势,一、二季度GDP环比增长折年率分别达到3.7%和4.5%,但三季度降至-2.1%。全年来看,通胀压力和疲软的日元抑制了私人需求,个人消费连续两个季度出现负增长,严重影响日本经济。此外,外需在三季度逐渐失去活力,特别是访日外国游客消费在三季度出现5%的环比下滑,同时,政府消费经历先降后升走势,但仍不足以支撑日本经济整体表现。\"}\n",
      "]\n"
     ]
    }
   ],
   "source": [
    "print(chat(build_qa_prompt(qa_gen_prompt_tmpl_large_context, splitted_docs_large[8].page_content)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "8d6e499b-effc-4d6a-b79e-05db1727fa2f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:08:31.812672Z",
     "iopub.status.busy": "2024-08-12T03:08:31.811960Z",
     "iopub.status.idle": "2024-08-12T03:08:31.899412Z",
     "shell.execute_reply": "2024-08-12T03:08:31.898935Z",
     "shell.execute_reply.started": "2024-08-12T03:08:31.812604Z"
    }
   },
   "outputs": [],
   "source": [
    "import threading\n",
    "import concurrent.futures\n",
    "from tqdm.auto import tqdm\n",
    "import json\n",
    "\n",
    "def gen_qa(splitted_docs, prompt_tmpl, qa_ckpt_filename):\n",
    "    qa_ckpt = {}\n",
    "    if os.path.exists(qa_ckpt_filename):\n",
    "        qa_ckpt = open(qa_ckpt_filename).readlines()\n",
    "        qa_ckpt = [json.loads(line.strip()) for line in qa_ckpt if line.strip() != '']\n",
    "        qa_ckpt = {item['uuid']: item for item in qa_ckpt}\n",
    "        print(f'found checkpoint, item count: {len(qa_ckpt)}')\n",
    "    \n",
    "    file_lock = threading.Lock()\n",
    "    max_workers = 4\n",
    "    with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:\n",
    "        futures = {doc.metadata['uuid']: executor.submit(chat, build_qa_prompt(prompt_tmpl, doc.page_content), 3, True) for doc in splitted_docs if len(doc.page_content.replace('\\n', '')) >= 150 and doc.metadata['uuid'] not in qa_ckpt}\n",
    "        for uuid in tqdm(futures):\n",
    "            future = futures[uuid]\n",
    "            result = future.result()\n",
    "            if result is None:\n",
    "                continue\n",
    "            \n",
    "            item = {'uuid': uuid, 'raw_resp': result}\n",
    "            qa_ckpt[uuid] = item\n",
    "    \n",
    "            # global file_lock\n",
    "            file_lock.acquire()\n",
    "            \n",
    "            try:\n",
    "                with open(qa_ckpt_filename, 'a') as f:\n",
    "                    f.write(json.dumps(item, ensure_ascii=False) + '\\n')\n",
    "            except Exception as e:\n",
    "                print(e)\n",
    "            finally:\n",
    "                file_lock.release()\n",
    "    return qa_ckpt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "9525aa93-7474-49a8-a995-00c94de7f313",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:08:31.900153Z",
     "iopub.status.busy": "2024-08-12T03:08:31.899878Z",
     "iopub.status.idle": "2024-08-12T03:16:17.402433Z",
     "shell.execute_reply": "2024-08-12T03:16:17.400081Z",
     "shell.execute_reply.started": "2024-08-12T03:08:31.900141Z"
    }
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6b8b80ce5dcb44baad80e963e1630b16",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/49 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "detailed_qa_dict = gen_qa(splitted_docs, qa_gen_prompt_tmpl, os.path.join(output_dir, f\"qa_ckpt_detailed.jsonl\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "72370d3e-5c8b-4012-8c34-fb934196a7d7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:16:17.405711Z",
     "iopub.status.busy": "2024-08-12T03:16:17.404981Z",
     "iopub.status.idle": "2024-08-12T03:17:42.256204Z",
     "shell.execute_reply": "2024-08-12T03:17:42.253877Z",
     "shell.execute_reply.started": "2024-08-12T03:16:17.405641Z"
    }
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e9f9f3dcecc941f8aaf384a6adc7c725",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/28 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "large_context_qa_dict = gen_qa(splitted_docs_large, qa_gen_prompt_tmpl_large_context, os.path.join(output_dir, f\"qa_ckpt_large_context.jsonl\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7fa878e7-9c9f-4700-864f-b9547a5f344d",
   "metadata": {},
   "source": [
    "# 后置处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "0c3a8af8-7af6-44ca-bed8-f386f9f194db",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.259503Z",
     "iopub.status.busy": "2024-08-12T03:17:42.258730Z",
     "iopub.status.idle": "2024-08-12T03:17:42.273254Z",
     "shell.execute_reply": "2024-08-12T03:17:42.271007Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.259435Z"
    }
   },
   "outputs": [],
   "source": [
    "import re\n",
    "\n",
    "def convert2json(text):\n",
    "    # pattern = r'```\\[(.*)\\]```'\n",
    "    # matched = match.group(1)\n",
    "    pattern = r'\\[.*\\]'\n",
    "    # text = qa_ckpt['8e2d7b02-4207-47b1-a8a5-14409b1b86f6']['raw_resp']\n",
    "\n",
    "    text = text.replace('>>>', '')\n",
    "    try:\n",
    "        return json.loads(text)\n",
    "    except:\n",
    "        match = re.search(pattern, text, re.DOTALL)\n",
    "        try:\n",
    "            matched = match.group(0)\n",
    "            return json.loads(matched)\n",
    "        except Exception as e:\n",
    "            print(f\"{match}, {str(e)}\")\n",
    "\n",
    "    return []"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "564b7782-57f8-4b3c-9daf-674f0a06bd2a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.277690Z",
     "iopub.status.busy": "2024-08-12T03:17:42.275912Z",
     "iopub.status.idle": "2024-08-12T03:17:42.496730Z",
     "shell.execute_reply": "2024-08-12T03:17:42.496264Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.277614Z"
    }
   },
   "outputs": [],
   "source": [
    "from tqdm.auto import tqdm\n",
    "import pandas as pd\n",
    "import pickle\n",
    "\n",
    "def build_qa_df(qa_ckpt, uuid2doc_map):\n",
    "    data = []\n",
    "    \n",
    "    for key, value in tqdm(qa_ckpt.items()):\n",
    "        text = value['raw_resp']\n",
    "        qa_list = convert2json(text)\n",
    "    \n",
    "        for item in qa_list:\n",
    "            question = item.get('question', '').strip()\n",
    "            answer = item.get('answer', '').strip()\n",
    "            context = item.get('context', '').strip()\n",
    "            \n",
    "            if question == '' or answer == '':\n",
    "                print(qa_list)\n",
    "                continue\n",
    "            data.append({\n",
    "                'uuid': key,\n",
    "                'question': question,\n",
    "                'answer': answer,\n",
    "                'context': context,\n",
    "                'doc': uuid2doc_map[key]\n",
    "            })\n",
    "    qa_df = pd.DataFrame(data)\n",
    "    return qa_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "39d9677f-faa0-4a31-9120-2b3ba6427e60",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.497423Z",
     "iopub.status.busy": "2024-08-12T03:17:42.497224Z",
     "iopub.status.idle": "2024-08-12T03:17:42.511350Z",
     "shell.execute_reply": "2024-08-12T03:17:42.510933Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.497410Z"
    }
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ffd37cfce18b4e4593ada22e3c724be0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/49 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'question': '2024年对欧洲经济增长的预期被下调了几次?', 'context': '这是两个多月的时间里第二次下调对欧洲经济增长的预期。', 'answer': '两次'}, {'question': '英国预算责任办公室对英国2024年的经济增长预测是多少百分比?', 'context': '1.4%'}, {'question': '10月份欧元区经济景气指数是多少?', 'context': '10月欧元区经济景气指数为93.3点。', 'answer': '93.3点'}, {'question': '未来欧元区经济增长面临的潜在挑战有哪些?', 'context': '未来应警惕取暖季天然气价格再度飙升风险以及南欧部分经济体预算紧张局势对欧元区经济增长的潜在挑战。', 'answer': '取暖季天然气价格再度飙升风险以及南欧部分经济体预算紧张局势'}, {'question': '2024年欧元区和英国的经济增速预计分别是多少?', 'context': '预计2023年欧元区和英国经济增速分别为0.6%和0.3%左右，2024年经济增速将分别达0.9%和0.5%左右。', 'answer': '欧元区为0.9%，英国为0.5%'}, {'question': '2023年10月欧盟委员会对中国的哪个行业发起了首次反补贴调查?', 'context': '2023年10月，欧盟委员会决定依职权对中国电动汽车发起反补贴调查。', 'answer': '电动汽车'}, {'question': '欧盟通常会如何认定构成补贴的情况?', 'context': '根据WTO《补贴与反补贴措施协定》规定以及欧盟过去对华反补贴调查的实践，被认定为补贴的情况通常包括政府拨款、税收优惠、优惠融资以及低价获得土地、原材料或服务等。', 'answer': '政府拨款、税收优惠、优惠融资以及低价获得土地、原材料或服务等'}, {'question': '2010年至2023年间，欧盟对中国哪一种产品发起了反补贴调查?', 'context': '涉案产品 发起时间...电动汽车 2023/10', 'answer': '铜版纸、数据卡、彩涂板、自行车、光伏、太阳能玻璃、玻璃纤维长丝、聚酯短纤维、冷轧不锈钢、热轧卷板、卡客车轮胎、电动自行车、玻璃纤维织物、热轧不锈钢板卷、铝转换箔、光缆、石墨电极、电动汽车'}]\n",
      "<re.Match object; span=(8, 1735), match='[\\n  {\\n    \"question\": \"2023年全球发展中国家的主要国际活动有哪些？\">, Expecting property name enclosed in double quotes: line 11 column 3 (char 478)\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b9b95b3ce20c4c1cb2b4c76e76b254f3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/28 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "None, 'NoneType' object has no attribute 'group'\n",
      "<re.Match object; span=(0, 412), match='[\\n  {\\n    \"question\": \"2023年发展中国家在货币合作方面取得了哪些实质>, Expecting property name enclosed in double quotes: line 5 column 3 (char 214)\n",
      "[{'question': '根据文本所提供的信息，美国房地产市场的哪些因素导致了房贷申请的下降?', 'answer': '美国房价持续上升叠加房贷利率上升，这两大因素影响了购房需求，导致房贷申请下降。此外，大部分负债购房发生在低端市场，而中端市场由于住房可负担性的严重受挫已基本冻结，这些都进一步抑制了房贷申请的数量。'}, {'question': '文本中提到了几个方面来反映美国当前的住房负担状况：一是美国家庭全部债务支出与可支配收入的比例在疫情期间上升，但整体低于历史水平；二是固定利率类房贷占主导地位，使得债务人的月供负担较低；三是计划购房者中有71%表示当房贷利率超过5.5%时将不再考虑购房；四是待售房屋供应紧张，导致房价持续上涨，进而降低了住房的负担能力。'}]\n"
     ]
    }
   ],
   "source": [
    "qa_df = build_qa_df(detailed_qa_dict, uuid2doc)\n",
    "large_context_qa_df = build_qa_df(large_context_qa_dict, uuid2large_doc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "47fbc0b6-4812-402f-93e8-0440e91cb96d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.511961Z",
     "iopub.status.busy": "2024-08-12T03:17:42.511829Z",
     "iopub.status.idle": "2024-08-12T03:17:42.515855Z",
     "shell.execute_reply": "2024-08-12T03:17:42.515517Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.511949Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "383"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(qa_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "90824aef-0246-4b54-a833-85362a7820b0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.516449Z",
     "iopub.status.busy": "2024-08-12T03:17:42.516323Z",
     "iopub.status.idle": "2024-08-12T03:17:42.521944Z",
     "shell.execute_reply": "2024-08-12T03:17:42.521581Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.516437Z"
    }
   },
   "outputs": [],
   "source": [
    "qa_df.drop_duplicates('question', inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "8de81918-8c9b-4fc4-ade1-d7c6596f5d13",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.522480Z",
     "iopub.status.busy": "2024-08-12T03:17:42.522355Z",
     "iopub.status.idle": "2024-08-12T03:17:42.527814Z",
     "shell.execute_reply": "2024-08-12T03:17:42.527511Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.522468Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "383"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(qa_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "35a1502a-0cdd-4eb1-9456-d87fdb6a6c11",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.528385Z",
     "iopub.status.busy": "2024-08-12T03:17:42.528264Z",
     "iopub.status.idle": "2024-08-12T03:17:42.534137Z",
     "shell.execute_reply": "2024-08-12T03:17:42.533809Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.528373Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "51"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(large_context_qa_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "6bffa7fe-f76b-410b-9014-098ac9c2cc0b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.534665Z",
     "iopub.status.busy": "2024-08-12T03:17:42.534543Z",
     "iopub.status.idle": "2024-08-12T03:17:42.539625Z",
     "shell.execute_reply": "2024-08-12T03:17:42.539231Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.534654Z"
    }
   },
   "outputs": [],
   "source": [
    "large_context_qa_df.drop_duplicates('question', inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "9de97333-1b53-4db3-8463-64256732db22",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.540156Z",
     "iopub.status.busy": "2024-08-12T03:17:42.540032Z",
     "iopub.status.idle": "2024-08-12T03:17:42.545959Z",
     "shell.execute_reply": "2024-08-12T03:17:42.545644Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.540144Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "51"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(large_context_qa_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "c22f4e9f-eaff-4303-9db2-18b44f62225f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.546486Z",
     "iopub.status.busy": "2024-08-12T03:17:42.546360Z",
     "iopub.status.idle": "2024-08-12T03:17:42.555352Z",
     "shell.execute_reply": "2024-08-12T03:17:42.554891Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.546474Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uuid</th>\n",
       "      <th>question</th>\n",
       "      <th>answer</th>\n",
       "      <th>context</th>\n",
       "      <th>doc</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>112</th>\n",
       "      <td>ae74431c-0b26-4f76-803c-21159e5ec4c1</td>\n",
       "      <td>2023年10月欧元区哪些领域的价格涨幅仍然明显?</td>\n",
       "      <td>食品、酒精和烟草价格、服务业和非能源工业产品价格涨幅仍然明显。</td>\n",
       "      <td>10月欧元区食品、酒精和烟草价格、服务业和非能源工业产品价格涨幅仍然明显，但能源价格同比大幅...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 14 2024年\\n降，较欧元区而言英国通胀更加顽固...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>308</th>\n",
       "      <td>96aec7da-2ee3-4e25-9955-15ecbb8d26ad</td>\n",
       "      <td>IMF将2023年海湾六国经济增速下调至多少？</td>\n",
       "      <td>IMF将2023年海湾六国经济增速下调至1.7%。</td>\n",
       "      <td>IMF在最新展望报告中将海湾六国2023年经济增速下调0.8个百分点至1.7%。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 40 2024年\\n注重绿色经济发展，为中海经贸合作...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75</th>\n",
       "      <td>e9ef727f-6276-4854-b77c-546106a48689</td>\n",
       "      <td>2023年前三个季度美国服务消费的增长主要归因于什么？</td>\n",
       "      <td>2023年前三个季度美国服务消费的增长主要归因于消费者在服务领域的需求释放及稳健的就业市场。</td>\n",
       "      <td>后疫情时代消费者在服务领域的压抑需求\\n得到释放。服务支出成为消费者支出领域中最稳定和增幅最...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 9 2024年\\n综合上述因素，“复苏+分化”将成为...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224</th>\n",
       "      <td>a476e490-cb06-46c8-b67f-160054866fe8</td>\n",
       "      <td>2023年11月15日美元指数是多少?</td>\n",
       "      <td>2023年11月15日美元指数为104.4。</td>\n",
       "      <td>2023年11月15日，美元指数为104.4，较年初上涨0.6%。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 29 2024年\\n（三）汇率市场：美元指数高位震荡...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>211</th>\n",
       "      <td>d1df0c0e-2dbd-4c19-896e-4d3ea941cc3c</td>\n",
       "      <td>2023年欧元区组合投资净流入规模是多少?</td>\n",
       "      <td>2023年欧元区组合投资净流入规模为531亿欧元</td>\n",
       "      <td>2023年前三季度，欧元区非储备性质金融账户净流出规模达2143亿欧元，其中直接投资净流出4...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 27 2024年\\n比增速分别为-1.04%、-2....</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     uuid                     question  \\\n",
       "112  ae74431c-0b26-4f76-803c-21159e5ec4c1    2023年10月欧元区哪些领域的价格涨幅仍然明显?   \n",
       "308  96aec7da-2ee3-4e25-9955-15ecbb8d26ad      IMF将2023年海湾六国经济增速下调至多少？   \n",
       "75   e9ef727f-6276-4854-b77c-546106a48689  2023年前三个季度美国服务消费的增长主要归因于什么？   \n",
       "224  a476e490-cb06-46c8-b67f-160054866fe8          2023年11月15日美元指数是多少?   \n",
       "211  d1df0c0e-2dbd-4c19-896e-4d3ea941cc3c        2023年欧元区组合投资净流入规模是多少?   \n",
       "\n",
       "                                             answer  \\\n",
       "112                 食品、酒精和烟草价格、服务业和非能源工业产品价格涨幅仍然明显。   \n",
       "308                       IMF将2023年海湾六国经济增速下调至1.7%。   \n",
       "75   2023年前三个季度美国服务消费的增长主要归因于消费者在服务领域的需求释放及稳健的就业市场。   \n",
       "224                          2023年11月15日美元指数为104.4。   \n",
       "211                        2023年欧元区组合投资净流入规模为531亿欧元   \n",
       "\n",
       "                                               context  \\\n",
       "112  10月欧元区食品、酒精和烟草价格、服务业和非能源工业产品价格涨幅仍然明显，但能源价格同比大幅...   \n",
       "308           IMF在最新展望报告中将海湾六国2023年经济增速下调0.8个百分点至1.7%。   \n",
       "75   后疫情时代消费者在服务领域的压抑需求\\n得到释放。服务支出成为消费者支出领域中最稳定和增幅最...   \n",
       "224                  2023年11月15日，美元指数为104.4，较年初上涨0.6%。   \n",
       "211  2023年前三季度，欧元区非储备性质金融账户净流出规模达2143亿欧元，其中直接投资净流出4...   \n",
       "\n",
       "                                                   doc  \n",
       "112  全球经济金融展望报告\\n中国银行研究院 14 2024年\\n降，较欧元区而言英国通胀更加顽固...  \n",
       "308  全球经济金融展望报告\\n中国银行研究院 40 2024年\\n注重绿色经济发展，为中海经贸合作...  \n",
       "75   全球经济金融展望报告\\n中国银行研究院 9 2024年\\n综合上述因素，“复苏+分化”将成为...  \n",
       "224  全球经济金融展望报告\\n中国银行研究院 29 2024年\\n（三）汇率市场：美元指数高位震荡...  \n",
       "211  全球经济金融展望报告\\n中国银行研究院 27 2024年\\n比增速分别为-1.04%、-2....  "
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qa_df.sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "7700fad3-8829-4545-bb17-b0d023653524",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.555909Z",
     "iopub.status.busy": "2024-08-12T03:17:42.555784Z",
     "iopub.status.idle": "2024-08-12T03:17:42.561892Z",
     "shell.execute_reply": "2024-08-12T03:17:42.561442Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.555897Z"
    }
   },
   "outputs": [],
   "source": [
    "qa_df['qa_type'] = 'detailed'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "85518b60-7120-4b90-95b7-7f3486db7d6c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.562473Z",
     "iopub.status.busy": "2024-08-12T03:17:42.562344Z",
     "iopub.status.idle": "2024-08-12T03:17:42.570487Z",
     "shell.execute_reply": "2024-08-12T03:17:42.570144Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.562461Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uuid</th>\n",
       "      <th>question</th>\n",
       "      <th>answer</th>\n",
       "      <th>context</th>\n",
       "      <th>doc</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>d09602e4-4b94-4095-84bf-5a29fe305720</td>\n",
       "      <td>2024年哪些因素有望支持日本经济的增长?</td>\n",
       "      <td>2024年,财政扩张、工资增长和商业信心回暖有望支撑日本内需转向正增长。随着库存调整结束,预...</td>\n",
       "      <td></td>\n",
       "      <td>图12：日本通胀同比增速变化（%）\\n资料来源：Wind，中国银行研究院\\n展望2024年，...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>31c7b58a-cd60-49b9-9860-0d4d771a42b2</td>\n",
       "      <td>2023年全球经济和金融的总体表现如何？</td>\n",
       "      <td>2023年全球经济增长动力持续回落，各国复苏分化，发达经济体增速明显放缓，新兴经济体整体表现...</td>\n",
       "      <td></td>\n",
       "      <td>研究院\\n全球经济金融展望报告\\n要点2024年年报（总第57期） 报告日期：2023年12...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>67ed758b-aedc-4969-a09a-68cefa312c02</td>\n",
       "      <td>2023年全球投资率相比于2022年有何变化？预测下降了多少个百分点？</td>\n",
       "      <td>IMF预测2023年全球投资率（投资占GDP的比重）将下降1.0个百分点至26.4%。</td>\n",
       "      <td></td>\n",
       "      <td>图3：部分经济体工业生产指数变化趋势（2010年=100）\\n资料来源：荷兰经济分析局，中国...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>6cf0d4aa-5a9f-4982-93b5-a67b84e3a18e</td>\n",
       "      <td>商业房地产市场面临哪些挑战导致其风险上升?</td>\n",
       "      <td>商业房地产市场面临的挑战包括:贷款新发放量大幅下降,CMBS新发行出现停滞;商业房地产价格指...</td>\n",
       "      <td></td>\n",
       "      <td>该类贷款新发放量将同比下降46%。同时，商业房地产抵押证券CMBS新发行\\n也出现停滞。商业...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>b6cc8ba4-3a69-4cda-a711-0e13fddf9805</td>\n",
       "      <td>海湾六国在新能源转型方面采取了哪些措施?</td>\n",
       "      <td>海湾六国已采取多项措施推动新能源转型。五国已设定净零排放目标，其中阿联酋的目标是在2050年...</td>\n",
       "      <td></td>\n",
       "      <td>供了空间，进一步坚定了海湾六国经济转型的决心。\\n近年来，海湾六国努力推进新能源转型，增强国...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                    uuid                             question  \\\n",
       "16  d09602e4-4b94-4095-84bf-5a29fe305720                2024年哪些因素有望支持日本经济的增长?   \n",
       "0   31c7b58a-cd60-49b9-9860-0d4d771a42b2                 2023年全球经济和金融的总体表现如何？   \n",
       "2   67ed758b-aedc-4969-a09a-68cefa312c02  2023年全球投资率相比于2022年有何变化？预测下降了多少个百分点？   \n",
       "49  6cf0d4aa-5a9f-4982-93b5-a67b84e3a18e                商业房地产市场面临哪些挑战导致其风险上升?   \n",
       "40  b6cc8ba4-3a69-4cda-a711-0e13fddf9805                 海湾六国在新能源转型方面采取了哪些措施?   \n",
       "\n",
       "                                               answer context  \\\n",
       "16  2024年,财政扩张、工资增长和商业信心回暖有望支撑日本内需转向正增长。随着库存调整结束,预...           \n",
       "0   2023年全球经济增长动力持续回落，各国复苏分化，发达经济体增速明显放缓，新兴经济体整体表现...           \n",
       "2         IMF预测2023年全球投资率（投资占GDP的比重）将下降1.0个百分点至26.4%。           \n",
       "49  商业房地产市场面临的挑战包括:贷款新发放量大幅下降,CMBS新发行出现停滞;商业房地产价格指...           \n",
       "40  海湾六国已采取多项措施推动新能源转型。五国已设定净零排放目标，其中阿联酋的目标是在2050年...           \n",
       "\n",
       "                                                  doc  \n",
       "16  图12：日本通胀同比增速变化（%）\\n资料来源：Wind，中国银行研究院\\n展望2024年，...  \n",
       "0   研究院\\n全球经济金融展望报告\\n要点2024年年报（总第57期） 报告日期：2023年12...  \n",
       "2   图3：部分经济体工业生产指数变化趋势（2010年=100）\\n资料来源：荷兰经济分析局，中国...  \n",
       "49  该类贷款新发放量将同比下降46%。同时，商业房地产抵押证券CMBS新发行\\n也出现停滞。商业...  \n",
       "40  供了空间，进一步坚定了海湾六国经济转型的决心。\\n近年来，海湾六国努力推进新能源转型，增强国...  "
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "large_context_qa_df.sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "95e6b451-5603-480f-88b7-21d61598c65d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.571060Z",
     "iopub.status.busy": "2024-08-12T03:17:42.570929Z",
     "iopub.status.idle": "2024-08-12T03:17:42.577712Z",
     "shell.execute_reply": "2024-08-12T03:17:42.577229Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.571048Z"
    }
   },
   "outputs": [],
   "source": [
    "large_context_qa_df['qa_type'] = 'large_context'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "2f056cd2-2940-4e46-99d7-9985d3abdb52",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.578264Z",
     "iopub.status.busy": "2024-08-12T03:17:42.578139Z",
     "iopub.status.idle": "2024-08-12T03:17:42.583664Z",
     "shell.execute_reply": "2024-08-12T03:17:42.583267Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.578252Z"
    }
   },
   "outputs": [],
   "source": [
    "qa_df = pd.concat([qa_df, large_context_qa_df])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "d6040ba8-1d6d-4c61-aa6a-772b787713d9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.584232Z",
     "iopub.status.busy": "2024-08-12T03:17:42.584075Z",
     "iopub.status.idle": "2024-08-12T03:17:42.592826Z",
     "shell.execute_reply": "2024-08-12T03:17:42.592449Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.584219Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uuid</th>\n",
       "      <th>question</th>\n",
       "      <th>answer</th>\n",
       "      <th>context</th>\n",
       "      <th>doc</th>\n",
       "      <th>qa_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>351</th>\n",
       "      <td>5c2a9e5a-e97e-48d2-a630-d569aa542e44</td>\n",
       "      <td>银行对于居住房地产信贷的标准如何?</td>\n",
       "      <td>银行对所有的居住房地产信贷，包括次级房贷的标准较为严格，很少有银行放松标准。</td>\n",
       "      <td>高级信贷官员的考察发现，银行对所有的居住房地产信贷，包括次级房贷的标准均较为严格，很少有银行...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 46 2024年\\n高级信贷官员的考察发现，银行对所...</td>\n",
       "      <td>detailed</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>374</th>\n",
       "      <td>b0ef3b31-0d8e-4a49-b7fb-0227a60c6b1f</td>\n",
       "      <td>与居住房地产相比，商业房地产及其信贷对哪些因素更为敏感?</td>\n",
       "      <td>与居住房地产相比，商业房地产及其信贷对价格下跌、流动性收紧更为敏感</td>\n",
       "      <td>与居住房地产相比，商业房地产及其信贷对价格下跌、流动性收紧更为敏感，其下行周期延续时间可能更长。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 48 2024年\\n该类贷款新发放量将同比下降46%...</td>\n",
       "      <td>detailed</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100</th>\n",
       "      <td>ad4de2d7-ffd7-499a-81a4-6288f91c5af3</td>\n",
       "      <td>2023年10月欧元区综合PMI数值及意义是什么?</td>\n",
       "      <td>2023年10月欧元区综合PMI下跌至46.5%，是自2020年11月以来的最低点，这表明商...</td>\n",
       "      <td>10月欧元区综合PMI进一步下跌至46.5%，创2020年11月以来新低，商业预期和新订单指...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 12 2024年\\n资支出和商业活动复苏。综合来看，...</td>\n",
       "      <td>detailed</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>180</th>\n",
       "      <td>edb36687-c8dd-47cd-9460-fb02c158bef5</td>\n",
       "      <td>哪些新兴经济体在2023年第四季度进一步提升了利率水平？</td>\n",
       "      <td>2023年第四季度，土耳其、俄罗斯和印尼的央行分别加息500、200和25个基点，提升了本国...</td>\n",
       "      <td>与发达经济体相反，部分新兴经济体在四季度进一步提升利率水平，其中，土耳其央行10月大幅加息5...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 23 2024年\\n图14：影响国际金融动态的六大因...</td>\n",
       "      <td>detailed</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>177</th>\n",
       "      <td>edb36687-c8dd-47cd-9460-fb02c158bef5</td>\n",
       "      <td>2023年欧洲央行的主要再融资利率有何变化？</td>\n",
       "      <td>2023年，欧洲央行前三个季度累计加息6次共175个基点，并于10月26日宣布维持主要再融资...</td>\n",
       "      <td>欧洲央行在前三个季度连续加息6次，累计175个基点，10月26日宣布维持主要再融资利率、存款...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 23 2024年\\n图14：影响国际金融动态的六大因...</td>\n",
       "      <td>detailed</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     uuid                      question  \\\n",
       "351  5c2a9e5a-e97e-48d2-a630-d569aa542e44             银行对于居住房地产信贷的标准如何?   \n",
       "374  b0ef3b31-0d8e-4a49-b7fb-0227a60c6b1f  与居住房地产相比，商业房地产及其信贷对哪些因素更为敏感?   \n",
       "100  ad4de2d7-ffd7-499a-81a4-6288f91c5af3     2023年10月欧元区综合PMI数值及意义是什么?   \n",
       "180  edb36687-c8dd-47cd-9460-fb02c158bef5  哪些新兴经济体在2023年第四季度进一步提升了利率水平？   \n",
       "177  edb36687-c8dd-47cd-9460-fb02c158bef5        2023年欧洲央行的主要再融资利率有何变化？   \n",
       "\n",
       "                                                answer  \\\n",
       "351             银行对所有的居住房地产信贷，包括次级房贷的标准较为严格，很少有银行放松标准。   \n",
       "374                  与居住房地产相比，商业房地产及其信贷对价格下跌、流动性收紧更为敏感   \n",
       "100  2023年10月欧元区综合PMI下跌至46.5%，是自2020年11月以来的最低点，这表明商...   \n",
       "180  2023年第四季度，土耳其、俄罗斯和印尼的央行分别加息500、200和25个基点，提升了本国...   \n",
       "177  2023年，欧洲央行前三个季度累计加息6次共175个基点，并于10月26日宣布维持主要再融资...   \n",
       "\n",
       "                                               context  \\\n",
       "351  高级信贷官员的考察发现，银行对所有的居住房地产信贷，包括次级房贷的标准均较为严格，很少有银行...   \n",
       "374   与居住房地产相比，商业房地产及其信贷对价格下跌、流动性收紧更为敏感，其下行周期延续时间可能更长。   \n",
       "100  10月欧元区综合PMI进一步下跌至46.5%，创2020年11月以来新低，商业预期和新订单指...   \n",
       "180  与发达经济体相反，部分新兴经济体在四季度进一步提升利率水平，其中，土耳其央行10月大幅加息5...   \n",
       "177  欧洲央行在前三个季度连续加息6次，累计175个基点，10月26日宣布维持主要再融资利率、存款...   \n",
       "\n",
       "                                                   doc   qa_type  \n",
       "351  全球经济金融展望报告\\n中国银行研究院 46 2024年\\n高级信贷官员的考察发现，银行对所...  detailed  \n",
       "374  全球经济金融展望报告\\n中国银行研究院 48 2024年\\n该类贷款新发放量将同比下降46%...  detailed  \n",
       "100  全球经济金融展望报告\\n中国银行研究院 12 2024年\\n资支出和商业活动复苏。综合来看，...  detailed  \n",
       "180  全球经济金融展望报告\\n中国银行研究院 23 2024年\\n图14：影响国际金融动态的六大因...  detailed  \n",
       "177  全球经济金融展望报告\\n中国银行研究院 23 2024年\\n图14：影响国际金融动态的六大因...  detailed  "
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qa_df.sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "2e759a73-28fd-485c-bb28-4a55f804584a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.593355Z",
     "iopub.status.busy": "2024-08-12T03:17:42.593236Z",
     "iopub.status.idle": "2024-08-12T03:17:42.599938Z",
     "shell.execute_reply": "2024-08-12T03:17:42.599634Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.593343Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "434"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(qa_df)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8633f77f-0f13-42d1-ac52-a5a20a794db3",
   "metadata": {},
   "source": [
    "# QA质量检查"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "a5331d71-3f37-4532-9b26-f5bb653804aa",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.602905Z",
     "iopub.status.busy": "2024-08-12T03:17:42.602740Z",
     "iopub.status.idle": "2024-08-12T03:17:42.605597Z",
     "shell.execute_reply": "2024-08-12T03:17:42.605179Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.602893Z"
    }
   },
   "outputs": [],
   "source": [
    "qa_check_prompt_tmpl = \"\"\"\n",
    "你是一个金融领域的专家，现在有人根据一份经济发展报告，构造了一些问题，并对问题进行了回答。\n",
    "你的任务是对这些问题（<question></question>之间的部分）和回答（<answer></answer>）进行打分。\n",
    "\n",
    "结果请以JSON形式组织，格式如下（<result></result>之间的部分）：\n",
    "<result>\n",
    "{\"score\": ..., \"reason\": ...}\n",
    "</result>\n",
    "其中score是对问题-回答的打分，分值是一个int类型的值，取值范围为1-5。reason是打分的理由。\n",
    "\n",
    "好的问题，应该是询问事实、观点等，不好的问题，通常要求做一些文本摘要等初级文字处理工作，类似于“这一段描述了什么”，“文本描述了什么”；或者询问的内容是图相关的，例如“图4展示了什么数据？”。\n",
    "好的答案，应该能够回应问题，而不是回答无关的内容，不好的回答，会给出在原文中的引用，例如“第3章”等。\n",
    "\n",
    "问题：\n",
    "<question>\n",
    "{{question}}\n",
    "</question>\n",
    "\n",
    "参考答案：\n",
    "<answer>\n",
    "{{answer}}\n",
    "</answer>\n",
    "\n",
    "请进返回JSON格式的数据即可，不要添加其他任何描述性信息。\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "219411e2-08b9-4232-9a18-67d4a1147fae",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.606103Z",
     "iopub.status.busy": "2024-08-12T03:17:42.605984Z",
     "iopub.status.idle": "2024-08-12T03:17:42.611859Z",
     "shell.execute_reply": "2024-08-12T03:17:42.611431Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.606092Z"
    },
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def build_qa_scoring_prompt(row):\n",
    "    context = row['context']\n",
    "    question = row['question']\n",
    "    answer = row['answer']\n",
    "    prompt = qa_check_prompt_tmpl.replace('{{question}}', question).replace('{{answer}}', answer)\n",
    "\n",
    "    return prompt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "56d0545b-c268-48c9-bf9b-28030150d1cd",
   "metadata": {},
   "source": [
    "在大规模打分之前，先调试一下，检查Prompt是否正常"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "be186069-3abe-420a-930d-da56ebe93930",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.612435Z",
     "iopub.status.busy": "2024-08-12T03:17:42.612311Z",
     "iopub.status.idle": "2024-08-12T03:17:42.618377Z",
     "shell.execute_reply": "2024-08-12T03:17:42.617951Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.612423Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'uuid': '0c244063-29cd-45bd-b3d3-9b768e4d7c15',\n",
       " 'question': '2023年三季度美国私人投资的表现如何?',\n",
       " 'answer': '2023年三季度美国私人投资有所增长，增速提升至8.4%（经季调后环比折年率）。不过，制造业和设备投资增速则出现了放缓。',\n",
       " 'context': '美国私人投资在2023年一季度触底后逐渐反弹，三季度存货及住宅投资恢复增长，带动私人投资增速提升至8.4%（经季调后环比折年率），但制造业和设备投资均放缓，环比增长折年率分别降低0.1%和3.8%。',\n",
       " 'doc': '全球经济金融展望报告\\n中国银行研究院 5 2024年\\n图4：部分欧洲国家零售销售指数\\n注：除英国是以2019年为基年外，其他经济体均为2015年为基年。\\n资料来源：Wind，中国银行研究院\\n发达经济体投资受加息政策影响较大，国内投资和跨境投资均持续承压。\\n美国私人投资在2023年一季度触底后逐渐反弹，三季度存货及住宅投资恢复增\\n长，带动私人投资增速提升至8.4%（经季调后环比折年率），但制造业和设备\\n投资均放缓，环比增长折年率分别降低0.1%和3.8%。欧盟投资增速放缓，房\\n地产投资减少。2023年二季度，欧元区固定资本形成总额环比增长0.1%，比一\\n季度增速下降0.3个百分点，房地产对GDP环比增长拉动率转为负值。在紧缩\\n货币政策影响下，发达经济体企业部门宏观杠杆率下降，企业加杠杆或负债投\\n资意愿不足。同2022年底相比，2023年二季度，美国、英国、法国、意大利\\n和德国非金融企业部门负债率分别下降了2.4个、3.4个、4.0个、3.0个和1.3\\n个百分点（图5）。IMF预测2023年全球投资率（投资占GDP的比重）将下\\n降1.0个百分点至26.4%（图6），其中，欧盟将下降1.1个百分点，比发达经\\n济体平均降幅高0.2个百分点。从跨境投资角度看，受地缘政治局势紧张、金\\n融领域动荡加剧、高利率和投资审查趋严等影响，并购交易仍然疲软，而在全\\n球产业链重塑背景下，东南亚等区域绿地投资恢复增长。联合国贸发会议预计',\n",
       " 'qa_type': 'detailed'}"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qa_df.iloc[41].to_dict()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "0127da7f-4feb-4569-aa95-4f1fc8a8bb58",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.618938Z",
     "iopub.status.busy": "2024-08-12T03:17:42.618809Z",
     "iopub.status.idle": "2024-08-12T03:17:42.623670Z",
     "shell.execute_reply": "2024-08-12T03:17:42.623196Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.618925Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "你是一个金融领域的专家，现在有人根据一份经济发展报告，构造了一些问题，并对问题进行了回答。\n",
      "你的任务是对这些问题（<question></question>之间的部分）和回答（<answer></answer>）进行打分。\n",
      "\n",
      "结果请以JSON形式组织，格式如下（<result></result>之间的部分）：\n",
      "<result>\n",
      "{\"score\": ..., \"reason\": ...}\n",
      "</result>\n",
      "其中score是对问题-回答的打分，分值是一个int类型的值，取值范围为1-5。reason是打分的理由。\n",
      "\n",
      "好的问题，应该是询问事实、观点等，不好的问题，通常要求做一些文本摘要等初级文字处理工作，类似于“这一段描述了什么”，“文本描述了什么”；或者询问的内容是图相关的，例如“图4展示了什么数据？”。\n",
      "好的答案，应该能够回应问题，而不是回答无关的内容，不好的回答，会给出在原文中的引用，例如“第3章”等。\n",
      "\n",
      "问题：\n",
      "<question>\n",
      "2023年三季度美国私人投资的表现如何?\n",
      "</question>\n",
      "\n",
      "参考答案：\n",
      "<answer>\n",
      "2023年三季度美国私人投资有所增长，增速提升至8.4%（经季调后环比折年率）。不过，制造业和设备投资增速则出现了放缓。\n",
      "</answer>\n",
      "\n",
      "请进返回JSON格式的数据即可，不要添加其他任何描述性信息。\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(build_qa_scoring_prompt(qa_df.iloc[41]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "5d0ec6bb-c567-408e-b775-2b399e7aa636",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:42.624265Z",
     "iopub.status.busy": "2024-08-12T03:17:42.624107Z",
     "iopub.status.idle": "2024-08-12T03:17:44.530628Z",
     "shell.execute_reply": "2024-08-12T03:17:44.528276Z",
     "shell.execute_reply.started": "2024-08-12T03:17:42.624253Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\"score\": 5, \"reason\": \"问题针对具体时间与指标进行询问，回答直接相关且提供了具体信息。\"}\n"
     ]
    }
   ],
   "source": [
    "print(chat(build_qa_scoring_prompt(qa_df.iloc[41]), debug=True, model_name='qwen-long', temperature=0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "feb8207c-8bd1-439f-be8d-46e9f02cbc6a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:17:44.535084Z",
     "iopub.status.busy": "2024-08-12T03:17:44.533992Z",
     "iopub.status.idle": "2024-08-12T03:24:06.967235Z",
     "shell.execute_reply": "2024-08-12T03:24:06.964855Z",
     "shell.execute_reply.started": "2024-08-12T03:17:44.534709Z"
    }
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1c00d392c6664eabbe10ed6e21fb7dad",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/434 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import threading\n",
    "import concurrent.futures\n",
    "from tqdm.auto import tqdm\n",
    "import json\n",
    "\n",
    "qa_scoring_ckpt = {}\n",
    "qa_scoring_ckpt_filename = os.path.join(output_dir, f\"qa_scoring_ckpt.jsonl\")\n",
    "if os.path.exists(qa_scoring_ckpt_filename):\n",
    "    qa_scoring_ckpt = open(qa_scoring_ckpt_filename).readlines()\n",
    "    qa_scoring_ckpt = [json.loads(line.strip()) for line in qa_scoring_ckpt if line.strip() != '']\n",
    "    qa_scoring_ckpt = {item['question']: item for item in qa_scoring_ckpt}\n",
    "    print(f'found checkpoint, item count: {len(qa_scoring_ckpt)}')\n",
    "\n",
    "file_lock = threading.Lock()\n",
    "max_workers = 3\n",
    "with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:\n",
    "    futures = {row['question']: executor.submit(chat, build_qa_scoring_prompt(row), 3, True, 'qwen-long', 0) for _, row in qa_df.iterrows() if row['question'] not in qa_scoring_ckpt}\n",
    "    for question in tqdm(futures):\n",
    "        future = futures[question]\n",
    "        result = future.result()\n",
    "        if result is None:\n",
    "            continue\n",
    "        \n",
    "        item = {'question': question, 'raw_resp': result}\n",
    "        qa_scoring_ckpt[question] = item\n",
    "\n",
    "        global file_lock\n",
    "        file_lock.acquire()\n",
    "        \n",
    "        try:\n",
    "            with open(qa_scoring_ckpt_filename, 'a') as f:\n",
    "                f.write(json.dumps(item, ensure_ascii=False) + '\\n')\n",
    "        except Exception as e:\n",
    "            print(e)\n",
    "        finally:\n",
    "            file_lock.release()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "b97218bb-b631-4ae7-90b0-a3e97e46576d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:06.970557Z",
     "iopub.status.busy": "2024-08-12T03:24:06.969833Z",
     "iopub.status.idle": "2024-08-12T03:24:06.986225Z",
     "shell.execute_reply": "2024-08-12T03:24:06.983958Z",
     "shell.execute_reply.started": "2024-08-12T03:24:06.970488Z"
    }
   },
   "outputs": [],
   "source": [
    "def extract_json(text):\n",
    "    \"\"\"\n",
    "    从raw_resp中提取出打分结果的JSON\n",
    "    :param raw_resp: LLM的返回结果，数据样例：\n",
    "    {\\n\"score\": 5, \\n\"reason\": \"问题提出了一个具体且明确的观点询问，即针对美国房地产市场的风险评估，特别是对中小型银行的影响。参考答案直接回答了问题，并提供了详细的解释和原因，没有引用原始文本的位置，而是直接给出了分析性的内容。\"\\n}\n",
    "    Based on the given criteria:\\n\\n- The question asks for a factual assessment of global trade performance in 2023, which is clear and direct.\\n- The provided answer directly addresses the question without referring back to a source or chapter, offering an evaluation of global trade conditions in 2023.\\n\\nBoth the question and the answer meet the criteria for being high-quality and appropriately structured. Therefore, I would give them a high score.\\n\\n```json\\n{\"score\": 5, \"reason\": \"The question is clear and direct, seeking a factual evaluation. The answer provides a direct response without referring to specific sources or sections.\"}\\n```\n",
    "    \"\"\"\n",
    "    # pattern = r'\\n```json\\n(.*?)\\n```'\n",
    "    pattern = r'\\{.*?\\}'\n",
    "    \n",
    "    ret = {}\n",
    "    try:\n",
    "        ret = json.loads(text)\n",
    "    except:\n",
    "        match = re.search(pattern, text, re.DOTALL)\n",
    "        try:\n",
    "            matched = match.group(0)\n",
    "            ret = json.loads(matched)\n",
    "        except Exception as e:\n",
    "            print(f\"{match}, {str(e)}\")\n",
    "            \n",
    "    return ret"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "c49ef2a7-cede-4199-9be4-9069a33eaa19",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:06.989631Z",
     "iopub.status.busy": "2024-08-12T03:24:06.988896Z",
     "iopub.status.idle": "2024-08-12T03:24:07.014043Z",
     "shell.execute_reply": "2024-08-12T03:24:07.011763Z",
     "shell.execute_reply.started": "2024-08-12T03:24:06.989560Z"
    },
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "qa_scoring_dict = {}\n",
    "\n",
    "for key, value in qa_scoring_ckpt.items():\n",
    "    try:\n",
    "        qa_scoring_dict[key] = extract_json(value['raw_resp'])\n",
    "        if 'score' not in qa_scoring_dict[key]:\n",
    "            qa_scoring_dict[key] = {'score': -1, 'reason': f\"parse failed, raw resp: {value['raw_resp']}\"}\n",
    "            raise ValueError(f'no score in result, question: {key}')\n",
    "    except Exception as e:\n",
    "        print(f\"{key}, error: {e}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "a1a6058d-4575-4f14-b8f0-12c788807f78",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.017572Z",
     "iopub.status.busy": "2024-08-12T03:24:07.016838Z",
     "iopub.status.idle": "2024-08-12T03:24:07.031441Z",
     "shell.execute_reply": "2024-08-12T03:24:07.030202Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.017503Z"
    }
   },
   "outputs": [],
   "source": [
    "qa_df['score'] = qa_df['question'].apply(lambda q: qa_scoring_dict.get(q, {}).get('score', -1))\n",
    "qa_df['score_reason'] = qa_df['question'].apply(lambda q: qa_scoring_dict.get(q, {}).get('reason', -1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "c276f215-0dff-4805-a325-7fad2b4f7cc9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.033053Z",
     "iopub.status.busy": "2024-08-12T03:24:07.032688Z",
     "iopub.status.idle": "2024-08-12T03:24:07.051404Z",
     "shell.execute_reply": "2024-08-12T03:24:07.050462Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.033018Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uuid</th>\n",
       "      <th>question</th>\n",
       "      <th>answer</th>\n",
       "      <th>context</th>\n",
       "      <th>doc</th>\n",
       "      <th>qa_type</th>\n",
       "      <th>score</th>\n",
       "      <th>score_reason</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>231</th>\n",
       "      <td>2c419b1e-8adb-4be2-a70a-67ae15746376</td>\n",
       "      <td>2024年美元汇率的预期变化趋势如何？</td>\n",
       "      <td>美元在2024年前期保持强劲势头，之后随着美联储货币政策转向而逐步走弱，在下半年将呈现贬值态势。</td>\n",
       "      <td>在美国经济展现出较强韧性背景下，美元在2024年前期保持强劲势头，之后将随着美联储货币政策转...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 30 2024年\\n图18：主要货币兑美元汇率较20...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题针对具体的时间点和主题提出了明确的询问，回答也直接针对问题给出了相应的预测，没有出现引用...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>132</th>\n",
       "      <td>6eb03ba2-7a40-447f-a6a0-92ad97737976</td>\n",
       "      <td>2023年第三季度日本经济的表现如何?</td>\n",
       "      <td>2023年第三季度，日本经济出现负增长，GDP环比折年率为-2.1%。</td>\n",
       "      <td>但三季度日本经济增长形势急转直下，GDP环比折年率降至-2.1%，三个季度以来首次出现负增长。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 16 2024年\\n存在专向性1或属于禁止性补贴，且...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题针对具体时间点的经济表现，回答直接且准确地给出了该时间段内的经济情况，符合良好问答的标准。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>66</th>\n",
       "      <td>6fe7702d-fe61-465b-94b6-3ceb11208536</td>\n",
       "      <td>2024年欧洲和美国的经济表现预计如何？</td>\n",
       "      <td>欧元区和英国面临的通胀压力较大，经济表现将弱于其他主要发达经济体；美国经济处于下行阶段，但经...</td>\n",
       "      <td>相较于新兴市场和发展中经济体，发达经济体面临更大的经济增长压力。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 8 2024年\\n率政策。\\n二是各国经济走势将进一...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题针对未来经济表现提出了明确的询问，回答也直接针对问题给出了具体的预测，没有提及无关内容或...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>684c8686-1a2f-4c4f-a453-e05ef233be43</td>\n",
       "      <td>2023年影响金融稳定性的因素有哪些?</td>\n",
       "      <td>2023年影响金融稳定性的主要因素包括：通胀维持高位、美联储持续大幅收紧货币政策、地缘冲突等。</td>\n",
       "      <td>2023年影响金融稳定性的主要因素包括：通胀维持高位、美联储持续大幅收紧货币政策、地缘冲\\n突等。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 25 2024年\\n图15：美联储资产规模变化（亿美...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题针对具体的时间点询问关于金融稳定性的因素，这是一个有效且明确的问题。回答直接针对问题提供...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>143</th>\n",
       "      <td>74dd56a4-2bfe-4184-b7d4-75aebb93b5a7</td>\n",
       "      <td>哪些因素可能支撑2024年日本内需转向正增长?</td>\n",
       "      <td>财政扩张、工资增长和商业信心回暖有望支撑日本内需转向正增长。</td>\n",
       "      <td>展望2024年，财政扩张、工资增长和商业信心回暖有望支撑日本内需转向\\n正增长。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 18 2024年\\n图12：日本通胀同比增速变化（%...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题针对报告内容提出了具体且有意义的问题，寻求关于特定主题（2024年日本内需转向正增长的因...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     uuid                 question  \\\n",
       "231  2c419b1e-8adb-4be2-a70a-67ae15746376      2024年美元汇率的预期变化趋势如何？   \n",
       "132  6eb03ba2-7a40-447f-a6a0-92ad97737976      2023年第三季度日本经济的表现如何?   \n",
       "66   6fe7702d-fe61-465b-94b6-3ceb11208536     2024年欧洲和美国的经济表现预计如何？   \n",
       "194  684c8686-1a2f-4c4f-a453-e05ef233be43      2023年影响金融稳定性的因素有哪些?   \n",
       "143  74dd56a4-2bfe-4184-b7d4-75aebb93b5a7  哪些因素可能支撑2024年日本内需转向正增长?   \n",
       "\n",
       "                                                answer  \\\n",
       "231   美元在2024年前期保持强劲势头，之后随着美联储货币政策转向而逐步走弱，在下半年将呈现贬值态势。   \n",
       "132                2023年第三季度，日本经济出现负增长，GDP环比折年率为-2.1%。   \n",
       "66   欧元区和英国面临的通胀压力较大，经济表现将弱于其他主要发达经济体；美国经济处于下行阶段，但经...   \n",
       "194    2023年影响金融稳定性的主要因素包括：通胀维持高位、美联储持续大幅收紧货币政策、地缘冲突等。   \n",
       "143                     财政扩张、工资增长和商业信心回暖有望支撑日本内需转向正增长。   \n",
       "\n",
       "                                               context  \\\n",
       "231  在美国经济展现出较强韧性背景下，美元在2024年前期保持强劲势头，之后将随着美联储货币政策转...   \n",
       "132    但三季度日本经济增长形势急转直下，GDP环比折年率降至-2.1%，三个季度以来首次出现负增长。   \n",
       "66                    相较于新兴市场和发展中经济体，发达经济体面临更大的经济增长压力。   \n",
       "194  2023年影响金融稳定性的主要因素包括：通胀维持高位、美联储持续大幅收紧货币政策、地缘冲\\n突等。   \n",
       "143           展望2024年，财政扩张、工资增长和商业信心回暖有望支撑日本内需转向\\n正增长。   \n",
       "\n",
       "                                                   doc   qa_type  score  \\\n",
       "231  全球经济金融展望报告\\n中国银行研究院 30 2024年\\n图18：主要货币兑美元汇率较20...  detailed      5   \n",
       "132  全球经济金融展望报告\\n中国银行研究院 16 2024年\\n存在专向性1或属于禁止性补贴，且...  detailed      5   \n",
       "66   全球经济金融展望报告\\n中国银行研究院 8 2024年\\n率政策。\\n二是各国经济走势将进一...  detailed      5   \n",
       "194  全球经济金融展望报告\\n中国银行研究院 25 2024年\\n图15：美联储资产规模变化（亿美...  detailed      5   \n",
       "143  全球经济金融展望报告\\n中国银行研究院 18 2024年\\n图12：日本通胀同比增速变化（%...  detailed      5   \n",
       "\n",
       "                                          score_reason  \n",
       "231  问题针对具体的时间点和主题提出了明确的询问，回答也直接针对问题给出了相应的预测，没有出现引用...  \n",
       "132    问题针对具体时间点的经济表现，回答直接且准确地给出了该时间段内的经济情况，符合良好问答的标准。  \n",
       "66   问题针对未来经济表现提出了明确的询问，回答也直接针对问题给出了具体的预测，没有提及无关内容或...  \n",
       "194  问题针对具体的时间点询问关于金融稳定性的因素，这是一个有效且明确的问题。回答直接针对问题提供...  \n",
       "143  问题针对报告内容提出了具体且有意义的问题，寻求关于特定主题（2024年日本内需转向正增长的因...  "
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qa_df.sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "0cf12c03-48c4-49ca-b48c-d727cd9ff12f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.052885Z",
     "iopub.status.busy": "2024-08-12T03:24:07.052398Z",
     "iopub.status.idle": "2024-08-12T03:24:07.060425Z",
     "shell.execute_reply": "2024-08-12T03:24:07.059496Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.052856Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "score\n",
       "5    307\n",
       "4    110\n",
       "3     11\n",
       "2      6\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qa_df['score'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "4aa437c6-8ef5-4972-b7f7-0f5b18263541",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.061747Z",
     "iopub.status.busy": "2024-08-12T03:24:07.061446Z",
     "iopub.status.idle": "2024-08-12T03:24:07.077318Z",
     "shell.execute_reply": "2024-08-12T03:24:07.076361Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.061720Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uuid</th>\n",
       "      <th>question</th>\n",
       "      <th>answer</th>\n",
       "      <th>context</th>\n",
       "      <th>doc</th>\n",
       "      <th>qa_type</th>\n",
       "      <th>score</th>\n",
       "      <th>score_reason</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>b560c1be-3b71-46aa-99f3-1c9b58157a0c</td>\n",
       "      <td>哪些因素支撑了发达经济体的增长?</td>\n",
       "      <td>内需是支撑发达经济体增长的主要动力。</td>\n",
       "      <td>从需求端看，内需是支撑发达经济体增长的主要动力，但对经济的拉动作 用逐渐减弱。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 4 2024年\\n图3：部分经济体工业生产指数变化趋...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题询问了关于发达经济体增长的支撑因素，这是一个好的问题。然而，回答虽然简短但只提到了一个方...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>b9279752-f66f-4377-b6a8-8135ae78fa73</td>\n",
       "      <td>哪份报告显示了部分发达国家非金融企业部门的债务率？</td>\n",
       "      <td>报告来自IIF和中国银行研究院。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 6 2024年\\n图5：部分发达国家非金融企业部门债...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 6 2024年\\n2023年全球跨境直接投资将继续下...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题询问了特定的信息来源，回答虽然提供了信息但是并没有明确指出具体的报告名称或位置，因此得分中等。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>126</th>\n",
       "      <td>b1c7fe51-98b2-471e-a7ce-6254cc5ef3e2</td>\n",
       "      <td>2010年至2023年间，欧盟对中国哪一种产品发起了反补贴调查?</td>\n",
       "      <td>铜版纸、数据卡、彩涂板、自行车、光伏、太阳能玻璃、玻璃纤维长丝、聚酯短纤维、冷轧不锈钢、热轧...</td>\n",
       "      <td>涉案产品 发起时间...电动汽车 2023/10</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 15 2024年\\n和1.2%，这是两个多月的时间里...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题明确要求了一个具体的产品种类，而回答提供了一连串的产品名称，没有明确指出是哪一种产品在2...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>684c8686-1a2f-4c4f-a453-e05ef233be43</td>\n",
       "      <td>2023年内风险因素和金融稳定性状态发生了怎样的变化?</td>\n",
       "      <td>2023年内风险因素和金融稳定性状态发生了一系列结构性转换。</td>\n",
       "      <td>年内风险因素和金融稳定性状态发生了一系列结构性转换。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 25 2024年\\n图15：美联储资产规模变化（亿美...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题询问了具体的事实信息，但回答虽然试图描述一种变化，却缺乏具体细节支持，显得过于笼统。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>246</th>\n",
       "      <td>e2d45751-ccaa-4157-a1fd-265e6edcd14e</td>\n",
       "      <td>2024年哪些新兴经济体货币可能面临金融市场压力?</td>\n",
       "      <td>汇率市场动荡且存在政府债务困境的部分新兴经济体</td>\n",
       "      <td>尤其值得关注的是，部分新兴经济体汇率市场动荡，叠加政府债务困境，将引发金融市场压力进一步攀升。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 31 2024年\\n2.新兴经济体货币普遍迎来小幅升...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题针对未来预测且具体，但回答过于笼统，没有明确指出具体的新兴经济体或货币。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>260</th>\n",
       "      <td>9ac73e16-94a7-4d38-9f1f-40e6062ae43f</td>\n",
       "      <td>2023年以来哪些经济体的债券发行规模出现了负增长或低速增长状态?</td>\n",
       "      <td>欧洲、英国等主要经济体</td>\n",
       "      <td>与美国类似，欧洲、英国等主要经济体债券发行规模均呈现负增长或低速增长状态。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 34 2024年\\n（五）债券市场：高利率环境或抑制...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题针对具体的时间点和具体的经济现象，是有意义的问题。但是回答不够具体详细，没有提供确切的数...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>277</th>\n",
       "      <td>d59b0533-714c-47ac-8269-7d56401d8ed7</td>\n",
       "      <td>2024年新能源发展的方向是什么？</td>\n",
       "      <td>2024年新能源发展的重点将是弥补国际原油市场的短缺格局。</td>\n",
       "      <td>国际原油市场短缺格局或延续，新能源发展成为重点。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 36 2024年\\n（六）大宗商品市场：全球大宗商品...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题针对未来特定时间点的趋势预测，而回答则更多基于当前或过去的逻辑推断，两者之间存在一定的不...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>293</th>\n",
       "      <td>3d08b817-1b5e-4d63-ae12-d33e15e2ca93</td>\n",
       "      <td>发布全球经济金融展望报告的机构是哪个?</td>\n",
       "      <td>中国银行研究院</td>\n",
       "      <td>全球经济金融展望报告 中国银行研究院 38 2024年</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 38 2024年\\n图24：天然气期货结算价格走势\\...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题本身清晰明确，但是回答内容与问题不符，全球经济金融展望报告通常由国际货币基金组织（IMF...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>355</th>\n",
       "      <td>5c2a9e5a-e97e-48d2-a630-d569aa542e44</td>\n",
       "      <td>未来30年房贷利率有何预测?</td>\n",
       "      <td>预计30年房贷利率将在2025年一季度下降到6.4%。</td>\n",
       "      <td>据测算，30年房贷利率将在2025年一季度下降到6.4%。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 46 2024年\\n高级信贷官员的考察发现，银行对所...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题询问了关于未来房贷利率的预测，这是一个有效的问题。然而，回答只给出了一个具体的预测点而没...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>361</th>\n",
       "      <td>3a243458-9410-4608-bfa7-4ad4061de90f</td>\n",
       "      <td>美联储何时可能会开始降息?</td>\n",
       "      <td>2024年</td>\n",
       "      <td>美联储可能在2024年开始降息，房贷利率随之下降，对住房市场需求可能起到一定支撑作用。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 47 2024年\\n第七，美联储加息以来住房贷款质量...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题询问了一个预测性的事实，回答简洁但缺乏解释依据。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>376</th>\n",
       "      <td>efe36035-ed5a-4230-839a-445feebba772</td>\n",
       "      <td>研究报告中的信息来源是什么?</td>\n",
       "      <td>研究报告中所引用信息均来自公开资料。</td>\n",
       "      <td>本研究报告由中国银行研究院撰写，研究报告中所引用信息均来自公开资料。</td>\n",
       "      <td>免责声明\\n本研究报告由中国银行研究院撰写，研究报告中所引用信息均来自公开资料。\\n本研究报...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>3</td>\n",
       "      <td>问题本身较为合理，但回答过于简略且没有具体说明信息的具体来源，只是笼统的回答。</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     uuid                           question  \\\n",
       "32   b560c1be-3b71-46aa-99f3-1c9b58157a0c                   哪些因素支撑了发达经济体的增长?   \n",
       "54   b9279752-f66f-4377-b6a8-8135ae78fa73          哪份报告显示了部分发达国家非金融企业部门的债务率？   \n",
       "126  b1c7fe51-98b2-471e-a7ce-6254cc5ef3e2   2010年至2023年间，欧盟对中国哪一种产品发起了反补贴调查?   \n",
       "196  684c8686-1a2f-4c4f-a453-e05ef233be43        2023年内风险因素和金融稳定性状态发生了怎样的变化?   \n",
       "246  e2d45751-ccaa-4157-a1fd-265e6edcd14e          2024年哪些新兴经济体货币可能面临金融市场压力?   \n",
       "260  9ac73e16-94a7-4d38-9f1f-40e6062ae43f  2023年以来哪些经济体的债券发行规模出现了负增长或低速增长状态?   \n",
       "277  d59b0533-714c-47ac-8269-7d56401d8ed7                  2024年新能源发展的方向是什么？   \n",
       "293  3d08b817-1b5e-4d63-ae12-d33e15e2ca93                发布全球经济金融展望报告的机构是哪个?   \n",
       "355  5c2a9e5a-e97e-48d2-a630-d569aa542e44                     未来30年房贷利率有何预测?   \n",
       "361  3a243458-9410-4608-bfa7-4ad4061de90f                      美联储何时可能会开始降息?   \n",
       "376  efe36035-ed5a-4230-839a-445feebba772                     研究报告中的信息来源是什么?   \n",
       "\n",
       "                                                answer  \\\n",
       "32                                  内需是支撑发达经济体增长的主要动力。   \n",
       "54                                    报告来自IIF和中国银行研究院。   \n",
       "126  铜版纸、数据卡、彩涂板、自行车、光伏、太阳能玻璃、玻璃纤维长丝、聚酯短纤维、冷轧不锈钢、热轧...   \n",
       "196                     2023年内风险因素和金融稳定性状态发生了一系列结构性转换。   \n",
       "246                            汇率市场动荡且存在政府债务困境的部分新兴经济体   \n",
       "260                                        欧洲、英国等主要经济体   \n",
       "277                      2024年新能源发展的重点将是弥补国际原油市场的短缺格局。   \n",
       "293                                            中国银行研究院   \n",
       "355                        预计30年房贷利率将在2025年一季度下降到6.4%。   \n",
       "361                                              2024年   \n",
       "376                                 研究报告中所引用信息均来自公开资料。   \n",
       "\n",
       "                                               context  \\\n",
       "32             从需求端看，内需是支撑发达经济体增长的主要动力，但对经济的拉动作 用逐渐减弱。   \n",
       "54   全球经济金融展望报告\\n中国银行研究院 6 2024年\\n图5：部分发达国家非金融企业部门债...   \n",
       "126                           涉案产品 发起时间...电动汽车 2023/10   \n",
       "196                         年内风险因素和金融稳定性状态发生了一系列结构性转换。   \n",
       "246    尤其值得关注的是，部分新兴经济体汇率市场动荡，叠加政府债务困境，将引发金融市场压力进一步攀升。   \n",
       "260              与美国类似，欧洲、英国等主要经济体债券发行规模均呈现负增长或低速增长状态。   \n",
       "277                           国际原油市场短缺格局或延续，新能源发展成为重点。   \n",
       "293                        全球经济金融展望报告 中国银行研究院 38 2024年   \n",
       "355                      据测算，30年房贷利率将在2025年一季度下降到6.4%。   \n",
       "361        美联储可能在2024年开始降息，房贷利率随之下降，对住房市场需求可能起到一定支撑作用。   \n",
       "376                 本研究报告由中国银行研究院撰写，研究报告中所引用信息均来自公开资料。   \n",
       "\n",
       "                                                   doc   qa_type  score  \\\n",
       "32   全球经济金融展望报告\\n中国银行研究院 4 2024年\\n图3：部分经济体工业生产指数变化趋...  detailed      3   \n",
       "54   全球经济金融展望报告\\n中国银行研究院 6 2024年\\n2023年全球跨境直接投资将继续下...  detailed      3   \n",
       "126  全球经济金融展望报告\\n中国银行研究院 15 2024年\\n和1.2%，这是两个多月的时间里...  detailed      3   \n",
       "196  全球经济金融展望报告\\n中国银行研究院 25 2024年\\n图15：美联储资产规模变化（亿美...  detailed      3   \n",
       "246  全球经济金融展望报告\\n中国银行研究院 31 2024年\\n2.新兴经济体货币普遍迎来小幅升...  detailed      3   \n",
       "260  全球经济金融展望报告\\n中国银行研究院 34 2024年\\n（五）债券市场：高利率环境或抑制...  detailed      3   \n",
       "277  全球经济金融展望报告\\n中国银行研究院 36 2024年\\n（六）大宗商品市场：全球大宗商品...  detailed      3   \n",
       "293  全球经济金融展望报告\\n中国银行研究院 38 2024年\\n图24：天然气期货结算价格走势\\...  detailed      3   \n",
       "355  全球经济金融展望报告\\n中国银行研究院 46 2024年\\n高级信贷官员的考察发现，银行对所...  detailed      3   \n",
       "361  全球经济金融展望报告\\n中国银行研究院 47 2024年\\n第七，美联储加息以来住房贷款质量...  detailed      3   \n",
       "376  免责声明\\n本研究报告由中国银行研究院撰写，研究报告中所引用信息均来自公开资料。\\n本研究报...  detailed      3   \n",
       "\n",
       "                                          score_reason  \n",
       "32   问题询问了关于发达经济体增长的支撑因素，这是一个好的问题。然而，回答虽然简短但只提到了一个方...  \n",
       "54   问题询问了特定的信息来源，回答虽然提供了信息但是并没有明确指出具体的报告名称或位置，因此得分中等。  \n",
       "126  问题明确要求了一个具体的产品种类，而回答提供了一连串的产品名称，没有明确指出是哪一种产品在2...  \n",
       "196       问题询问了具体的事实信息，但回答虽然试图描述一种变化，却缺乏具体细节支持，显得过于笼统。  \n",
       "246             问题针对未来预测且具体，但回答过于笼统，没有明确指出具体的新兴经济体或货币。  \n",
       "260  问题针对具体的时间点和具体的经济现象，是有意义的问题。但是回答不够具体详细，没有提供确切的数...  \n",
       "277  问题针对未来特定时间点的趋势预测，而回答则更多基于当前或过去的逻辑推断，两者之间存在一定的不...  \n",
       "293  问题本身清晰明确，但是回答内容与问题不符，全球经济金融展望报告通常由国际货币基金组织（IMF...  \n",
       "355  问题询问了关于未来房贷利率的预测，这是一个有效的问题。然而，回答只给出了一个具体的预测点而没...  \n",
       "361                         问题询问了一个预测性的事实，回答简洁但缺乏解释依据。  \n",
       "376            问题本身较为合理，但回答过于简略且没有具体说明信息的具体来源，只是笼统的回答。  "
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qa_df[qa_df['score'] == 3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "47bec872-26ec-4265-830e-2a7024f78e6a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.078644Z",
     "iopub.status.busy": "2024-08-12T03:24:07.078354Z",
     "iopub.status.idle": "2024-08-12T03:24:07.092133Z",
     "shell.execute_reply": "2024-08-12T03:24:07.091155Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.078617Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uuid</th>\n",
       "      <th>question</th>\n",
       "      <th>answer</th>\n",
       "      <th>context</th>\n",
       "      <th>doc</th>\n",
       "      <th>qa_type</th>\n",
       "      <th>score</th>\n",
       "      <th>score_reason</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>139</th>\n",
       "      <td>163f59fb-2161-40ec-b202-4a473d664240</td>\n",
       "      <td>什么因素导致日本进口价格压力再度上升？</td>\n",
       "      <td>进入三季度后日本面临的进口价格压力再度上升。</td>\n",
       "      <td>进入三季度日本面临的进口价格压力再度上升。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 17 2024年\\n图11：日本GDP环比增长折年率...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>2</td>\n",
       "      <td>问题询问了导致日本进口价格压力上升的因素，但是回答并没有提供这些因素，而是重复了问题中的部分陈述。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>151</th>\n",
       "      <td>4c576130-668e-4799-84ec-eff30e5896f5</td>\n",
       "      <td>2023年三季度菲律宾和印度尼西亚的居民消费支出同比增长了多少?</td>\n",
       "      <td>5.1%</td>\n",
       "      <td>新兴经济体增长的主要因素，三季度菲律宾和印度尼西亚居民消费支出同比均增长约5.1%，拉动GD...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 19 2024年\\n新兴经济体增长的主要因素，三季度...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>2</td>\n",
       "      <td>问题询问了具体的数据信息，但是回答没有明确指出哪个国家的消费支出增长了多少，也没有说明这个数...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153</th>\n",
       "      <td>4c576130-668e-4799-84ec-eff30e5896f5</td>\n",
       "      <td>2023年前两个季度巴西和墨西哥的GDP增速如何?</td>\n",
       "      <td>超过3%</td>\n",
       "      <td>拉美新兴经济体表现严重分化，2023年前两个季度巴西和墨西哥GDP增速均超过3%，阿根廷则面...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 19 2024年\\n新兴经济体增长的主要因素，三季度...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>2</td>\n",
       "      <td>问题询问了具体的信息，但是回答太过模糊，没有明确指出哪个国家的具体增速，也没有区分第一季度和...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>166</th>\n",
       "      <td>e3f3cbf1-9965-4d35-ac25-ce38281e7e51</td>\n",
       "      <td>‘南南合作’的目标是什么？</td>\n",
       "      <td>'南南合作'的目标是在中国-中亚峰会、金砖国家领导人会晤、“一带一路”国际合作高峰论坛等机制...</td>\n",
       "      <td>在上述机制推动下，未来“南南合作”有望不断增强，共同寻求发展新机遇。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 20 2024年\\n图13：部分亚洲新兴经济体GDP...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>2</td>\n",
       "      <td>回答没有直接说明‘南南合作’的目标，而是提到了一些具体的会议和机制，没有准确回应问题。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>268</th>\n",
       "      <td>2fd6cfa9-b7cb-4cb5-8f30-0a44565faa51</td>\n",
       "      <td>2024年哪些债券的收益率预计会维持高位?</td>\n",
       "      <td>相关于美联储、欧洲央行、英格兰银行所持有债券的收益率</td>\n",
       "      <td>2024年，美联储、欧洲央行、英格兰银行将继续推进资产负债表缩减计划，推高相关债券的收益率。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 35 2024年\\n体国债收益率出现较大幅度下跌。当...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>2</td>\n",
       "      <td>问题询问了具体的信息，但是回答并没有直接回答哪些债券的收益率会维持高位，而是提供了一个模糊的...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>292</th>\n",
       "      <td>3d08b817-1b5e-4d63-ae12-d33e15e2ca93</td>\n",
       "      <td>2024年的黄金价格是否会因哪些因素得到支撑?</td>\n",
       "      <td>黄金避险功能</td>\n",
       "      <td>黄金避险功能仍将发挥作用，黄金价格底部受到一定支撑。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 38 2024年\\n图24：天然气期货结算价格走势\\...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>2</td>\n",
       "      <td>问题询问了关于2024年黄金价格支撑因素的具体内容，但回答只提供了一个非常笼统的概念‘黄金避...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     uuid                          question  \\\n",
       "139  163f59fb-2161-40ec-b202-4a473d664240               什么因素导致日本进口价格压力再度上升？   \n",
       "151  4c576130-668e-4799-84ec-eff30e5896f5  2023年三季度菲律宾和印度尼西亚的居民消费支出同比增长了多少?   \n",
       "153  4c576130-668e-4799-84ec-eff30e5896f5         2023年前两个季度巴西和墨西哥的GDP增速如何?   \n",
       "166  e3f3cbf1-9965-4d35-ac25-ce38281e7e51                     ‘南南合作’的目标是什么？   \n",
       "268  2fd6cfa9-b7cb-4cb5-8f30-0a44565faa51             2024年哪些债券的收益率预计会维持高位?   \n",
       "292  3d08b817-1b5e-4d63-ae12-d33e15e2ca93           2024年的黄金价格是否会因哪些因素得到支撑?   \n",
       "\n",
       "                                                answer  \\\n",
       "139                             进入三季度后日本面临的进口价格压力再度上升。   \n",
       "151                                               5.1%   \n",
       "153                                               超过3%   \n",
       "166  '南南合作'的目标是在中国-中亚峰会、金砖国家领导人会晤、“一带一路”国际合作高峰论坛等机制...   \n",
       "268                         相关于美联储、欧洲央行、英格兰银行所持有债券的收益率   \n",
       "292                                             黄金避险功能   \n",
       "\n",
       "                                               context  \\\n",
       "139                              进入三季度日本面临的进口价格压力再度上升。   \n",
       "151  新兴经济体增长的主要因素，三季度菲律宾和印度尼西亚居民消费支出同比均增长约5.1%，拉动GD...   \n",
       "153  拉美新兴经济体表现严重分化，2023年前两个季度巴西和墨西哥GDP增速均超过3%，阿根廷则面...   \n",
       "166                 在上述机制推动下，未来“南南合作”有望不断增强，共同寻求发展新机遇。   \n",
       "268     2024年，美联储、欧洲央行、英格兰银行将继续推进资产负债表缩减计划，推高相关债券的收益率。   \n",
       "292                         黄金避险功能仍将发挥作用，黄金价格底部受到一定支撑。   \n",
       "\n",
       "                                                   doc   qa_type  score  \\\n",
       "139  全球经济金融展望报告\\n中国银行研究院 17 2024年\\n图11：日本GDP环比增长折年率...  detailed      2   \n",
       "151  全球经济金融展望报告\\n中国银行研究院 19 2024年\\n新兴经济体增长的主要因素，三季度...  detailed      2   \n",
       "153  全球经济金融展望报告\\n中国银行研究院 19 2024年\\n新兴经济体增长的主要因素，三季度...  detailed      2   \n",
       "166  全球经济金融展望报告\\n中国银行研究院 20 2024年\\n图13：部分亚洲新兴经济体GDP...  detailed      2   \n",
       "268  全球经济金融展望报告\\n中国银行研究院 35 2024年\\n体国债收益率出现较大幅度下跌。当...  detailed      2   \n",
       "292  全球经济金融展望报告\\n中国银行研究院 38 2024年\\n图24：天然气期货结算价格走势\\...  detailed      2   \n",
       "\n",
       "                                          score_reason  \n",
       "139  问题询问了导致日本进口价格压力上升的因素，但是回答并没有提供这些因素，而是重复了问题中的部分陈述。  \n",
       "151  问题询问了具体的数据信息，但是回答没有明确指出哪个国家的消费支出增长了多少，也没有说明这个数...  \n",
       "153  问题询问了具体的信息，但是回答太过模糊，没有明确指出哪个国家的具体增速，也没有区分第一季度和...  \n",
       "166        回答没有直接说明‘南南合作’的目标，而是提到了一些具体的会议和机制，没有准确回应问题。  \n",
       "268  问题询问了具体的信息，但是回答并没有直接回答哪些债券的收益率会维持高位，而是提供了一个模糊的...  \n",
       "292  问题询问了关于2024年黄金价格支撑因素的具体内容，但回答只提供了一个非常笼统的概念‘黄金避...  "
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qa_df[qa_df['score'] == 2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "7006df8c-b6dc-4133-8211-00bc4d44f208",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.093416Z",
     "iopub.status.busy": "2024-08-12T03:24:07.093126Z",
     "iopub.status.idle": "2024-08-12T03:24:07.098466Z",
     "shell.execute_reply": "2024-08-12T03:24:07.097665Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.093388Z"
    }
   },
   "outputs": [],
   "source": [
    "hq_qa_df = qa_df[qa_df['score'] >= 4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "2acc6df0-c856-4a70-b59e-2258d980f3e0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.099731Z",
     "iopub.status.busy": "2024-08-12T03:24:07.099437Z",
     "iopub.status.idle": "2024-08-12T03:24:07.106155Z",
     "shell.execute_reply": "2024-08-12T03:24:07.105209Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.099703Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(417, 8)"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hq_qa_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "9c14fa29-262f-449c-9c76-2b1240df7851",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.107625Z",
     "iopub.status.busy": "2024-08-12T03:24:07.107333Z",
     "iopub.status.idle": "2024-08-12T03:24:07.113266Z",
     "shell.execute_reply": "2024-08-12T03:24:07.112432Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.107597Z"
    }
   },
   "outputs": [],
   "source": [
    "test_q = hq_qa_df.sample(100, replace=False)['question'].values.tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "07d3b615-0078-415f-9ec3-c2ea3c1a439a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.114484Z",
     "iopub.status.busy": "2024-08-12T03:24:07.114198Z",
     "iopub.status.idle": "2024-08-12T03:24:07.122962Z",
     "shell.execute_reply": "2024-08-12T03:24:07.122056Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.114457Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_2589713/2938610661.py:1: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  hq_qa_df['dataset'] = 'train'\n"
     ]
    }
   ],
   "source": [
    "hq_qa_df['dataset'] = 'train'\n",
    "hq_qa_df.loc[hq_qa_df['question'].isin(test_q), 'dataset'] = 'test'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "1f9802d2-6926-42d9-8acf-a6c725a6ce59",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.124290Z",
     "iopub.status.busy": "2024-08-12T03:24:07.123854Z",
     "iopub.status.idle": "2024-08-12T03:24:07.139633Z",
     "shell.execute_reply": "2024-08-12T03:24:07.138682Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.124261Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uuid</th>\n",
       "      <th>question</th>\n",
       "      <th>answer</th>\n",
       "      <th>context</th>\n",
       "      <th>doc</th>\n",
       "      <th>qa_type</th>\n",
       "      <th>score</th>\n",
       "      <th>score_reason</th>\n",
       "      <th>dataset</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>259</th>\n",
       "      <td>9ac73e16-94a7-4d38-9f1f-40e6062ae43f</td>\n",
       "      <td>2023年美国10年期国债收益率较2022年底提高了多少个基点?</td>\n",
       "      <td>65个基点</td>\n",
       "      <td>截至11月15日，美国、德国、法国、英国、日本的10年期国债收益率分别为4.53%、2.61...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 34 2024年\\n（五）债券市场：高利率环境或抑制...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题明确具体，针对可量化的事实进行询问。回答直接针对问题给出了具体的数值，没有包含无关信息。</td>\n",
       "      <td>train</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>187</th>\n",
       "      <td>8d07da80-dc29-4484-979d-02808b092538</td>\n",
       "      <td>2024年美联储计划如何调整其资产负债结构?</td>\n",
       "      <td>2024年美联储计划维持每月950亿美元的缩表节奏，其中包括600亿美元的国债和350亿美元...</td>\n",
       "      <td>美联储将不断调整资产负债结构，维持每月950亿美元（包括600亿美元国债和350亿抵押贷款支...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 24 2024年\\n表2：2023年主要央行加息情况...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题针对具体的时间点和事件进行询问，回答也直接针对问题给出了明确的信息，没有提及无关内容或提...</td>\n",
       "      <td>train</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>305</th>\n",
       "      <td>96aec7da-2ee3-4e25-9955-15ecbb8d26ad</td>\n",
       "      <td>2022年沙特的GDP规模是多少？</td>\n",
       "      <td>2022年沙特的GDP规模为1.1万亿美元。</td>\n",
       "      <td>2022年，沙特GDP规模达1.1万亿美元。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 40 2024年\\n注重绿色经济发展，为中海经贸合作...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题直接明确地询问了一个具体的事实信息，回答也准确地提供了该事实，没有多余的不相关信息。</td>\n",
       "      <td>test</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>323</th>\n",
       "      <td>c10f0287-041f-4b5d-867b-7d7ed1320c09</td>\n",
       "      <td>沙特的特许经营法案是在哪一年制定的？</td>\n",
       "      <td>2021年。</td>\n",
       "      <td>沙特2021年制定了特许经营法案，</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 42 2024年\\n供了空间，进一步坚定了海湾六国经...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题明确具体，回答精准直接。</td>\n",
       "      <td>test</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>104</th>\n",
       "      <td>1404f7d2-0948-491a-a6e4-1858f97592de</td>\n",
       "      <td>2023年10月欧元区的通胀率降至多少百分比?</td>\n",
       "      <td>2.9%</td>\n",
       "      <td>通胀率持续下降，但对于居民生活仍带来压力。货币紧缩政策、能源价格回落等因素带动欧元区通胀压力...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 13 2024年\\n图9：欧元区GDP环比增速、综合...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题明确询问了一个具体的数值信息，回答直接给出了相应的具体数值，没有多余的无关内容。</td>\n",
       "      <td>test</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>239</th>\n",
       "      <td>e2d45751-ccaa-4157-a1fd-265e6edcd14e</td>\n",
       "      <td>2024年下半年哪些亚洲货币预计会有所回升?</td>\n",
       "      <td>印度卢比、泰铢和韩元</td>\n",
       "      <td>预计2024年下半年，随着美元指数逐渐回落，部分亚洲货币，如印度卢比、泰铢和韩元汇率将有所回升。</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 31 2024年\\n2.新兴经济体货币普遍迎来小幅升...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题明确且具体，针对未来预测提出，回答直接相关且提供了具体的货币名称。</td>\n",
       "      <td>test</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>193f8818-e4e9-4cb4-8649-a865b368e90b</td>\n",
       "      <td>2023年全球债券市场的状况如何，特别是美国债券市场的情况?</td>\n",
       "      <td>2023年全球债券市场在整体货币政策趋紧的大环境下，出现了融资规模下降的现象。在美国市场方面...</td>\n",
       "      <td></td>\n",
       "      <td>图19：美国联邦基金目标利率与全球MSCI指数\\n资料来源：Wind，中国银行研究院\\n表3...</td>\n",
       "      <td>large_context</td>\n",
       "      <td>5</td>\n",
       "      <td>问题针对具体的时间点和市场情况提出，具有针对性和实际意义。回答内容直接相关，提供了详细的市场...</td>\n",
       "      <td>test</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>d76771e7-80b8-4efe-bec5-ec850df4769d</td>\n",
       "      <td>2023年全球主要发达经济体的货币政策有何变化，以及新兴经济体采取了何种行动?</td>\n",
       "      <td>2023年，为继续遏制高通胀，主要发达经济体如美国、欧元区及英国的货币政策延续收紧态势，但总...</td>\n",
       "      <td></td>\n",
       "      <td>表1：2024年全球主要经济体关键指标预测（%）\\n地区年\\n国家GDP增长率 CPI涨幅 ...</td>\n",
       "      <td>large_context</td>\n",
       "      <td>5</td>\n",
       "      <td>问题针对具体的时间点询问关于全球经济体的货币政策变化，这是一个明确且深入的问题。回答详细地说...</td>\n",
       "      <td>train</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>250</th>\n",
       "      <td>059c0474-67f3-440e-bc59-fa61172d228c</td>\n",
       "      <td>2023年11月15日前哪些行业在MSCI指数中的涨幅最大?</td>\n",
       "      <td>2023年11月15日之前，信息科技行业的涨幅达到了41.1%，超过了电信业务和非日常消费品...</td>\n",
       "      <td>截至2023年11月15日，信息科技MSCI指数涨幅高达41.1%，远高于电信业务（31.5...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 33 2024年\\n展望2024年，全球股票市场走势...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题明确询问了特定时间点前涨幅最大的行业，回答直接针对问题提供了具体的信息科技行业的涨幅数据...</td>\n",
       "      <td>train</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>76</th>\n",
       "      <td>e9ef727f-6276-4854-b77c-546106a48689</td>\n",
       "      <td>2023年美国政府采取了哪些政策来支持经济增长？</td>\n",
       "      <td>2023年美国政府通过实施《通胀削减法案》和《芯片与科学法案》来加大对清洁能源和半导体产业的...</td>\n",
       "      <td>2023年美国政府推进实施《通胀削减法案》《芯片与科学法案》，加\\n大对清洁能源、半导体等产...</td>\n",
       "      <td>全球经济金融展望报告\\n中国银行研究院 9 2024年\\n综合上述因素，“复苏+分化”将成为...</td>\n",
       "      <td>detailed</td>\n",
       "      <td>5</td>\n",
       "      <td>问题明确询问了2023年美国政府为了支持经济增长所采取的具体政策，回答直接针对这个问题提供了...</td>\n",
       "      <td>train</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     uuid  \\\n",
       "259  9ac73e16-94a7-4d38-9f1f-40e6062ae43f   \n",
       "187  8d07da80-dc29-4484-979d-02808b092538   \n",
       "305  96aec7da-2ee3-4e25-9955-15ecbb8d26ad   \n",
       "323  c10f0287-041f-4b5d-867b-7d7ed1320c09   \n",
       "104  1404f7d2-0948-491a-a6e4-1858f97592de   \n",
       "239  e2d45751-ccaa-4157-a1fd-265e6edcd14e   \n",
       "31   193f8818-e4e9-4cb4-8649-a865b368e90b   \n",
       "21   d76771e7-80b8-4efe-bec5-ec850df4769d   \n",
       "250  059c0474-67f3-440e-bc59-fa61172d228c   \n",
       "76   e9ef727f-6276-4854-b77c-546106a48689   \n",
       "\n",
       "                                    question  \\\n",
       "259         2023年美国10年期国债收益率较2022年底提高了多少个基点?   \n",
       "187                   2024年美联储计划如何调整其资产负债结构?   \n",
       "305                        2022年沙特的GDP规模是多少？   \n",
       "323                       沙特的特许经营法案是在哪一年制定的？   \n",
       "104                  2023年10月欧元区的通胀率降至多少百分比?   \n",
       "239                   2024年下半年哪些亚洲货币预计会有所回升?   \n",
       "31            2023年全球债券市场的状况如何，特别是美国债券市场的情况?   \n",
       "21   2023年全球主要发达经济体的货币政策有何变化，以及新兴经济体采取了何种行动?   \n",
       "250           2023年11月15日前哪些行业在MSCI指数中的涨幅最大?   \n",
       "76                  2023年美国政府采取了哪些政策来支持经济增长？   \n",
       "\n",
       "                                                answer  \\\n",
       "259                                              65个基点   \n",
       "187  2024年美联储计划维持每月950亿美元的缩表节奏，其中包括600亿美元的国债和350亿美元...   \n",
       "305                             2022年沙特的GDP规模为1.1万亿美元。   \n",
       "323                                             2021年。   \n",
       "104                                               2.9%   \n",
       "239                                         印度卢比、泰铢和韩元   \n",
       "31   2023年全球债券市场在整体货币政策趋紧的大环境下，出现了融资规模下降的现象。在美国市场方面...   \n",
       "21   2023年，为继续遏制高通胀，主要发达经济体如美国、欧元区及英国的货币政策延续收紧态势，但总...   \n",
       "250  2023年11月15日之前，信息科技行业的涨幅达到了41.1%，超过了电信业务和非日常消费品...   \n",
       "76   2023年美国政府通过实施《通胀削减法案》和《芯片与科学法案》来加大对清洁能源和半导体产业的...   \n",
       "\n",
       "                                               context  \\\n",
       "259  截至11月15日，美国、德国、法国、英国、日本的10年期国债收益率分别为4.53%、2.61...   \n",
       "187  美联储将不断调整资产负债结构，维持每月950亿美元（包括600亿美元国债和350亿抵押贷款支...   \n",
       "305                             2022年，沙特GDP规模达1.1万亿美元。   \n",
       "323                                  沙特2021年制定了特许经营法案，   \n",
       "104  通胀率持续下降，但对于居民生活仍带来压力。货币紧缩政策、能源价格回落等因素带动欧元区通胀压力...   \n",
       "239   预计2024年下半年，随着美元指数逐渐回落，部分亚洲货币，如印度卢比、泰铢和韩元汇率将有所回升。   \n",
       "31                                                       \n",
       "21                                                       \n",
       "250  截至2023年11月15日，信息科技MSCI指数涨幅高达41.1%，远高于电信业务（31.5...   \n",
       "76   2023年美国政府推进实施《通胀削减法案》《芯片与科学法案》，加\\n大对清洁能源、半导体等产...   \n",
       "\n",
       "                                                   doc        qa_type  score  \\\n",
       "259  全球经济金融展望报告\\n中国银行研究院 34 2024年\\n（五）债券市场：高利率环境或抑制...       detailed      5   \n",
       "187  全球经济金融展望报告\\n中国银行研究院 24 2024年\\n表2：2023年主要央行加息情况...       detailed      5   \n",
       "305  全球经济金融展望报告\\n中国银行研究院 40 2024年\\n注重绿色经济发展，为中海经贸合作...       detailed      5   \n",
       "323  全球经济金融展望报告\\n中国银行研究院 42 2024年\\n供了空间，进一步坚定了海湾六国经...       detailed      5   \n",
       "104  全球经济金融展望报告\\n中国银行研究院 13 2024年\\n图9：欧元区GDP环比增速、综合...       detailed      5   \n",
       "239  全球经济金融展望报告\\n中国银行研究院 31 2024年\\n2.新兴经济体货币普遍迎来小幅升...       detailed      5   \n",
       "31   图19：美国联邦基金目标利率与全球MSCI指数\\n资料来源：Wind，中国银行研究院\\n表3...  large_context      5   \n",
       "21   表1：2024年全球主要经济体关键指标预测（%）\\n地区年\\n国家GDP增长率 CPI涨幅 ...  large_context      5   \n",
       "250  全球经济金融展望报告\\n中国银行研究院 33 2024年\\n展望2024年，全球股票市场走势...       detailed      5   \n",
       "76   全球经济金融展望报告\\n中国银行研究院 9 2024年\\n综合上述因素，“复苏+分化”将成为...       detailed      5   \n",
       "\n",
       "                                          score_reason dataset  \n",
       "259     问题明确具体，针对可量化的事实进行询问。回答直接针对问题给出了具体的数值，没有包含无关信息。   train  \n",
       "187  问题针对具体的时间点和事件进行询问，回答也直接针对问题给出了明确的信息，没有提及无关内容或提...   train  \n",
       "305       问题直接明确地询问了一个具体的事实信息，回答也准确地提供了该事实，没有多余的不相关信息。    test  \n",
       "323                                     问题明确具体，回答精准直接。    test  \n",
       "104         问题明确询问了一个具体的数值信息，回答直接给出了相应的具体数值，没有多余的无关内容。    test  \n",
       "239                问题明确且具体，针对未来预测提出，回答直接相关且提供了具体的货币名称。    test  \n",
       "31   问题针对具体的时间点和市场情况提出，具有针对性和实际意义。回答内容直接相关，提供了详细的市场...    test  \n",
       "21   问题针对具体的时间点询问关于全球经济体的货币政策变化，这是一个明确且深入的问题。回答详细地说...   train  \n",
       "250  问题明确询问了特定时间点前涨幅最大的行业，回答直接针对问题提供了具体的信息科技行业的涨幅数据...   train  \n",
       "76   问题明确询问了2023年美国政府为了支持经济增长所采取的具体政策，回答直接针对这个问题提供了...   train  "
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hq_qa_df.sample(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "952b1457-1b1b-49dc-8df3-ceb505faa1b5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-12T03:24:07.140822Z",
     "iopub.status.busy": "2024-08-12T03:24:07.140540Z",
     "iopub.status.idle": "2024-08-12T03:24:07.393872Z",
     "shell.execute_reply": "2024-08-12T03:24:07.393354Z",
     "shell.execute_reply.started": "2024-08-12T03:24:07.140794Z"
    }
   },
   "outputs": [],
   "source": [
    "hq_qa_df.to_excel(os.path.join(output_dir, f'question_answer.xlsx'), index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "217082f7-bcd6-418f-afd5-d36ca3485691",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
